0

我正在创建一个 Android 应用程序,该应用程序在可用时使用 Holo 主题,并在不可用时回退到黑色主题。我通过使用 、 和 文件夹来完成valuesvalues-v11操作values-14

我有一个我想使用?android:attr/buttonBarStyleand?android:attr/buttonBarButtonStyle样式的活动,但我不确定当它们不可用时如何回退到不同的样式(例如@android:style/ButtonBar)。这是我的布局供参考。

<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" >

    <Button
        android:id="@+id/button1"
        style="?android:attr/buttonBarButtonStyle"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Button One" />

    <Button
        android:id="@+id/button2"
        style="?android:attr/buttonBarButtonStyle"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Button Two" />
</LinearLayout>
4

2 回答 2

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>
于 2013-05-29T20:16:49.607 回答
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用作父样式的方法,但我找不到实现此目的的方法。

于 2013-01-14T01:13:27.507 回答