在Android上有什么?attr / mean?

时间:2016-07-02 23:01:04

标签: android android-layout material-design android-support-library android-theme

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

thread.sleep(10)

这是我第一次看到这些<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"/> ,我不知道它们的含义或存储这些值的位置。这些是自定义还是在Android框架上预定义的?

参考:Android Toolbar Documentation

2 个答案:

答案 0 :(得分:19)

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

对于某些情况,最好使用属性值而不是直接使用值,因为它允许轻松自定义。例如,当您创建自定义视图时,可以使用?attr/colorAccent,以便视图的用户不必提供颜色,并且它将使用应用中使用的colorAccent而不是主题。

答案 1 :(得分:5)

  

样式属性资源允许您引用的值   当前应用主题中的属性。

https://developer.android.com/guide/topics/resources/accessing-resources.html#ReferencesToThemeAttributes