我正在尝试将按钮设置为Android Full Width ICS style Minimalist Bottom ButtonsViews中的问题。
我已经成功了,对于任何感兴趣的人都有以下xml:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:divider="@android:drawable/divider_horizontal_dark"
android:gravity="bottom"
android:orientation="vertical"
android:paddingTop="16dip"
android:showDividers="beginning|end" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:measureWithLargestChild="true"
android:orientation="horizontal"
android:divider="@android:drawable/divider_horizontal_dark"
android:showDividers="middle" >
<Button
android:id="@+id/cancel_button"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_weight="1"
android:maxLines="2"
android:text="@string/cancel_button" />
<Button
android:id="@+id/login_button"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight="1"
android:filterTouchesWhenObscured="true"
android:maxLines="2"
android:text="@string/login_button" />
</LinearLayout>
</LinearLayout>
但有一个问题。 eclipse内容帮助不知道以下资源解析发生了什么:
style="?android:attr/buttonBarButtonStyle"
我熟悉典型的解决方案(eclipse的内容辅助知道)
style=@android/style/...
......但我不清楚两者之间的区别。似乎某些样式属性出现在一个而不是另一个。例如,以下内容无法解决任何问题:
style=@android:attr/buttonBarStyle
,这也不是:
style="@android:style/buttonBarStyle
所以我猜这里有两个问题:
谢谢!
答案 0 :(得分:13)
来自another answer SO(在此解释):
在ID前面使用问号意味着您要访问在样式主题中定义的样式属性,而不是对该属性进行硬编码。
将其视为取消引用主题属性以获取它指向的资源,而不是引用属性本身。
答案 1 :(得分:1)
?android:attr / buttonBarButtonStyle 或只是?android:buttonBarButtonStyle - (attr是可选的)
<item name="buttonBarButtonStyle">@android:style/Widget.Button</item>
这内部取消引用@android:style / Widget.Button,它在appcompat / res / values / themes.xml 文件中定义。
(?android:) - 始终链接到所应用的当前主题的属性值。 因此允许我们仅引用android定义的样式,而不是创建一个新的并提供硬编码的值。
Google Doc说, "It uses the style that is defined by this attribute, in the current theme"