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

有什么区别

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

 style="?android:attr/borderlessButtonStyle" 

@?什么区别?

这是ungoogleable或ogooglebar等问题之一 。

(从这个答案及其评论)

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

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

@android:彩色/黑白

意味着你指的是android命名空间中定义的颜色。 此命名空间是框架的命名空间。

在此文件中搜索黑色: 框架中的黑色

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

“?android:attr / borderlessButtonStyle”只是意味着“使用名称空间android中名为borderlessButtonStyle的属性定义的值”。 此属性及其值是Android框架的一部分,即“android”命名空间。

borderlessButtonStyle在框架中


编辑:来自此引用样式属性

这个链接告诉我们:

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

  

Google上有一个文档http://developer.android.com/guide/topics/resources/accessing-resources.html#ReferencesToThemeAttributes