有什么区别@android:和?android:

有什么区别

android:color="@android:color/black" 

 style="?android:attr/borderlessButtonStyle" 

@?什么区别?

这是其中一个不可检索的问题,即ogooglebar 。

(从这个答案及其评论)

使用问号前缀ID表示您要访问样式主题中定义的样式属性,而不是对属性进行硬编码,如引用样式属性中所述 。

更具体地说, 意味着额外的间接水平。 把它看作是取消引用主题属性来获取它指向的资源,而不是引用属性本身。 你看到这个?android:attr / foo

@android:彩色/黑白

意味着您所指的是在android命名空间中定义的颜色。 这个命名空间是框架的命名空间。

在此文件中search黑色: 框架中的黑色

风格= “机器人:ATTR / borderlessButtonStyle”

“?android:attr / borderlessButtonStyle”仅仅意味着“在命名空间android中使用名为borderlessButtonStyle的属性定义的值”。 这个属性和它的值是Android框架的一部分,即“android”命名空间。

在框架中的borderlessButtonStyle


编辑:从这个引用样式属性

这个链接告诉我们:

例如,下面介绍如何引用属性来设置文本颜色以匹配系统主题的“主要”文本颜色:

 <EditText id="text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="?android:textColorSecondary" android:text="@string/hello_world" />