2013-05-22 78 views
7

什么什么@android之间的区别:和android:

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

style="?android:attr/borderlessButtonStyle" 

什么是@?之间的区别有什么区别?

这是其中一个不可上网的问题,或ogooglebar

+0

从它的文件[访问资源(http://developer.android.com/guide/topics/resources/accessing-resources .html):为了引用一个样式属性,名称语法与普通的资源格式几乎相同,但是使用问号“(?)”而不是at符号“(@)”,资源类型部分是可选的。 – devnull

+0

这不是一个无法使用的网址.... :) –

+0

这个问题的网址slu is很有趣。 –

回答

5

(从this答案,其意见)

附加了一个问号的ID指示要访问是在一个风格的主题定义的样式属性,而不是硬编码的属性,如解释在Referencing Style Attributes

更具体地说,?意味着额外的间接级别。可以将它视为取消引用主题属性以获取其指向的资源,而不是引用该属性本身。你看这与Android:ATTR /富

9

@android:彩色/黑白

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

搜索黑色在这个文件中:black color in framework

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

简单地表示“使用被称为由属性定义的值android名称空间中的borderlessButtonStyle。“该属性及其值是Android框架的一部分,即“android”命名空间。

borderlessButtonStyle in framework


编辑:从这个Referencing Style Attributes

此链接告诉我们:

例如,这里是你如何能参考设置文本颜色相匹配的属性“主要”文本颜色系统主题

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

哇,这实际上是正确的,没有实际回答问题。 – Chloe

+1

检查我编辑的ans并告诉我什么是系统主题? –

相关问题