我正在创建一个在可用时使用Holo主题的Android应用,并在无法使用时回退到黑色主题。我正在使用values
,values-v11
和values-14
文件夹完成此操作。
我有一项活动,我想使用?android:attr/buttonBarStyle
和?android:attr/buttonBarButtonStyle
样式,但我不确定如何在不可用时回退到不同的样式(例如{{1} })。这是我的布局供参考。
@android:style/ButtonBar
答案 0 :(得分:10)
嗯,我有点晚了,但这就是我解决它的方法:
<LinearLayout
android:id="@+id/footer"
style="@style/ButtonBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/accountSpinner"
android:orientation="horizontal" >
<Button
android:id="@android:id/button1"
style="@style/ButtonBarButton"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="50dp"
android:text="@string/login" />
<Button
android:id="@android:id/button2"
style="@style/ButtonBarButton"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="50dp"
android:enabled="false"
android:text="@string/login" />
</LinearLayout>
有这样的风格:
<style name="ButtonBarButton">
</style>
<style name="ButtonBar" parent="@android:style/ButtonBar">
</style>
和v11:
<style name="ButtonBarButton" parent="@android:style/Widget.Holo.Button.Borderless">
<item name="android:textColor">@android:color/primary_text_light</item>
</style>
<style name="ButtonBar" parent="@android:style/Holo.Light.ButtonBar.AlertDialog">
</style>
答案 1 :(得分:1)
我通过使用两个单独的布局文件解决了这个问题,一个位于layout
文件夹中,另一个位于layout-v11
中。它们几乎相同,只是它们包含style
属性的不同值。
第一个看起来像这样(在layout
中):
<LinearLayout
android:id="@+id/buttonArea"
style="@style/buttonBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="bottom|right"
android:orientation="horizontal"
android:padding="5dp" >
<Button
android:id="@+id/button1"
style="@style/buttonBarButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button
android:id="@+id/button2"
style="@style/buttonBarButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
第二个看起来像这样(在layout-v11
中):
<LinearLayout
android:id="@+id/buttonArea"
style="?android:attr/buttonBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="bottom|right"
android:orientation="horizontal"
android:padding="5dp" >
<Button
android:id="@+id/button1"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button
android:id="@+id/button2"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
由于重复信息的数量,我对这种方法并不完全满意。我想找到一种方法来使用?android:attr/buttonBarButtonStyle
作为父样式,但我找不到实现此目的的方法。