6

ナイトモードの変更に合わせて背景を変更するもの。

/values と /values-night フォルダーがあり、値が異なる「colors.xml」が含まれています。`

<color name="grey1">#ebebeb</color>
<color name="grey2">#c7c7c7</color>
<color name="grey3">#999999</color>
<color name="hover1">#8bb065</color>
<color name="red1">#ba0000</color>
<color name="red2">#ff0000</color>
<color name="green1">#336600</color>
<color name="text1">#000000</color>

そしてその他は

<color name="grey1">#999999</color>
<color name="grey2">#333333</color>
<color name="grey3">#000000</color>
<color name="hover1">#8bb065</color>
<color name="red1">#ba0000</color>
<color name="red2">#ff0000</color>
<color name="green1">#336600</color>
<color name="text1">#ffffff</color>

これらの色は、背景「activity_main_bg2.xml」のレイヤー リストで使用されます。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="@color/grey1" />
        </shape>
    </item>
    <item
        android:bottom="1dp"
        android:left="1dp"
        android:right="1dp">
        <shape android:shape="rectangle" >
            <solid android:color="@color/grey2" />
        </shape>
     </item>
</layer-list>

私のアクティビティにはフラグメントが含まれています:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world_dark"
    android:background="@drawable/activity_main_bg2" />

昼夜やバックから時間を変えても背景の色が変わらない。しかし、私が使用する場合

android:background="@color/grey1"

すべて正常に動作します。

これを解決するには?これはアンドロイドのバグですか?

4

1 に答える 1

7

これを試してください:

  1. フォルダ res/values および res/values-night にファイル style.xml を作成します。
  2. TextView の両方のスタイルに次のように追加します。

    <style name="textViewStyle">
    <item name="android:background">@drawable/activity_main_bg2</item>
    </style>
    
  3. レイアウトを次のように更新します。

    <TextView
    style="@style/textViewStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world_dark" />
    

このソリューションは、昼/夜モードに依存するプロパティの色を取得する必要があります。

于 2013-10-21T20:29:26.070 に答える