在Android上有什么?attr/mean?

Jul*_*ida 23 android android-layout android-theme android-support-library material-design

我正在研究一个关于支持库和工具栏的示例,这是Android文档中布局的代码

<android.support.v7.widget.Toolbar
    android:id="@+id/my_toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:elevation="4dp"
    android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
Run Code Online (Sandbox Code Playgroud)

这是我第一次看到这些?attr,我不知道它们的含义或存储这些值的位置.这些是自定义还是在Android框架上预定义的?

参考:Android工具栏文档

Ale*_*tyl 24

?attr/对属性的引用.属性是应用主题中指定的值.示例中的这些特定属性是支持库提供的主题中指定的所有值.Android也有自己的属性,可以使用它们?android:attr/.

在某些情况下,最好使用属性值而不是直接使用值,因为它允许轻松自定义.例如,当您创建自定义视图时,可以使用<application/>视图的用户不必提供颜色,而是使用<activity/>应用程序主题中使用的颜色.