在Android布局xml文件中,“?android:”和“@android:”有什么区别?
在Android布局xml文件中,“?android:”和“@android:”有什么区别? 他们似乎是重用android SDK资源的可互换方式。
我发现的唯一区别是以下例子。
这里TextView的右边缘与ImageButton的左边缘alignment
<RelativeLayout android:id="@id/header" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#888888"> <TextView android:id="@android:id/text1" android:layout_alignParentLeft="true" android:text="blah blah" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_toLeftOf="@android:id/button1" /> <ImageButton android:id="@android:id/button1" android:layout_alignParentRight="true" style="@style/PlusButton" /> </RelativeLayout>
但是,在这里,TextView的右边缘与RelativeLayout的右边缘alignment。 TextView重叠ImageButton。
<RelativeLayout android:id="@id/header" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#888888"> <TextView android:id="@android:id/text1" android:layout_alignParentLeft="true" android:text="blah blah" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_toLeftOf="?android:id/button1" /> <ImageButton android:id="?android:id/button1" android:layout_alignParentRight="true" style="@style/PlusButton" /> </RelativeLayout>
这两个布局的唯一区别是使用@android vs?android。 都编译没有错误。
非常感谢。
带有问号的ID前缀表示您要访问在样式主题中定义的样式属性,而不是对该属性进行硬编码。
请参阅“引用样式属性”: 访问资源