Holo中的Android按钮栏

时间:2013-01-12 19:51:53

标签: android android-layout

我正在创建一个在可用时使用Holo主题的Android应用,并在无法使用时回退到黑色主题。我正在使用valuesvalues-v11values-14文件夹完成此操作。

我有一项活动,我想使用?android:attr/buttonBarStyle?android:attr/buttonBarButtonStyle样式,但我不确定如何在不可用时回退到不同的样式(例如{{1} })。这是我的布局供参考。

@android:style/ButtonBar

2 个答案:

答案 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作为父样式,但我找不到实现此目的的方法。