为样式属性设置单独的?-qualifier的目的是什么?为什么不使用@ -qualifier?
<Button
style="?android:attr/buttonBarButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:drawable/ic_media_play" />
答案 0 :(得分:1)
样式属性资源允许您引用当前应用主题中的属性值。引用样式属性允许您通过设置UI元素的样式来自定义UI元素的外观,以匹配当前主题提供的标准变体,而不是提供硬编码值。引用样式属性实质上是说,“在当前主题中使用由此属性定义的样式。”
要引用样式属性,名称语法几乎与普通资源格式相同,但使用问号(?)代替at符号(?),资源类型部分是可选的。例如:
例如,以下是如何引用属性来设置文本颜色以匹配系统主题的“主要”文本颜色:
<EditText id="text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="?android:textColorSecondary"
android:text="@string/hello_world" />
这里,android:textColor属性指定当前主题中样式属性的名称。 Android现在使用应用于android:textColorSecondary样式属性的值作为此窗口小部件中android:textColor的值。因为系统资源工具知道在此上下文中需要属性资源,所以您不需要显式声明类型(可以是?android:attr / textColorSecondary) - 您可以排除attr类型。
<强> Source: HERE 强>