0

利用可能な場合はHoloテーマを使用し、利用できない場合は黒のテーマにフォールバックするAndroidアプリを作成しています。values、、、values-v11およびvalues-14フォルダーを使用してこれを実現しています。

?android:attr/buttonBarStyleとスタイルを使用したいアクティビティがあり?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

これを解決するには、2つの別々のレイアウトファイルを使用しました。1つはlayoutフォルダーにあり、もう1つはにありますlayout-v11style属性に異なる値が含まれていることを除いて、ほとんど同じです。

最初のものは次のようになります(で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>

2番目のものは次のようになります(で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 に答える