0

TextView の contentBg スタイルに赤色を定義しました。親スタイルからスタイル名 myContentNew を変更または名前変更して、TextView の色を赤から青に変更できますか? TextView スタイルの name-contentBG は変更しないでください。それはアンドロイドスタイルで可能ですか?

<RelativeLayout 
   style="@style/myContent"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content">
<TextView 
   style="@style/contentBG"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"/>
</RelativeLayout>

私のコードは以下のようになります

<RelativeLayout 
       style="@style/myContentNew"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content">
    <TextView 
       style="@style/contentBG"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"/>
 </RelativeLayout>

添付の画像で明確なアイデアを得ることができます。ここに画像の説明を入力

CSSのように:

.myContent .contentBg{background-color:red}
.myContentNew .contentBg{background-color:blue}

ありがとう

4

2 に答える 2

1

2 つの異なるテーマを作成する例を次に示します。

最初にマニフェスト ファイルを変更して、デフォルトのカスタム テーマを呼び出す必要があります。次に例を示します。

<application
    android:name="RateDayApplication"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/CustomTheme" >

次に、styles.xml ファイルで、同じスタイルを含む 2 つの異なるテーマを準備しますcontentBG

<!-- *** THEME WITH RED BG*** -->
<style name="CustomTheme" parent="@android:style/Theme.Holo.Light">
    <item name="contentBG">@style/contentBGred</item>

</style>

<style name="contentBGred" >
    <item name="android:colorBackground">@color/red</item>
</style>

<!-- *** THEME WITH BLUE BG*** -->
<style name="CustomThemeNew" parent="@android:style/Theme.Holo.Light">
    <item name="contentBG">@style/contentBGblue</item>
</style>

<style name="contentBGblue" >
    <item name="android:colorBackground">@color/blue</item>
</style>

重要:ここではTheme.Holo.Light親テーマとして使用します。別のテーマを使用している場合は変更できます。

上記の 2 つのテーマでは、スタイルに同じ名前が付けられており、XML ファイルで参照として使用されます。この参照を宣言するにはattrs.xml、フォルダーの下の無題のファイルに追加する必要がありvaluesます。

内容は次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <attr name="contentBG" format="reference" />
</resources>

完了したら、XML ファイルでこのスタイルを次のように呼び出す必要があります (レイアウトでのスタイルはもう必要ありません)。

<RelativeLayout 
   android:layout_width="fill_parent"
   android:layout_height="wrap_content">
<TextView 
   style="?contentBG"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"/>
</RelativeLayout>

ここでの疑問符は、参照を使用してスタイルが読み込まれることを意味します。使用されるスタイルは、 に適用されている現在のテーマの 1 つになりActivityます。

この方法を使用して、アクティビティに必要なテーマを簡単に設定できます。

setTheme(R.style.CustomTheme);

また

setTheme(R.style.CustomThemeNew);
于 2013-05-28T08:23:57.697 に答える
1

そうではないと思います。

contentBGスタイルが決まったら。変更することはできませんが、コード内です。

于 2013-05-28T06:43:58.107 に答える