1. ホーム
  2. android

[解決済み] AndroidでViewにグローバルスタイルを設定する

2022-06-05 11:04:15

質問

例えば、私がすべての TextView インスタンスに textColor="#ffffff" . のインスタンスごとに設定するのではなく、一箇所で設定する方法はありますか? TextView ?

どのように解決するのですか?

実は、カスタムJavaクラスやスタイルを個別に設定しなくても、TextViews(と他のほとんどの組み込みウィジェット)のデフォルトスタイルを設定することができます。

もしあなたが themes.xml を見ると、さまざまなウィジェットのデフォルトのスタイルに関する属性の束が表示されます。キーとなるのは textViewStyle (または editTextStyle など)属性があり、これをカスタムテーマでオーバーライドします。これらは以下の方法で上書きすることができます。

を作成します。 styles.xml :

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="android:Theme">
    <item name="android:textViewStyle">@style/MyTextViewStyle</item>
</style>

<style name="MyTextViewStyle" parent="android:Widget.TextView">
    <item name="android:textColor">#F00</item>
    <item name="android:textStyle">bold</item>
</style>
</resources>

そして、そのテーマをアプリケーションに適用するだけです。 AndroidManifest.xml :

<application […] android:theme="@style/MyTheme">…

で定義されたスタイルがデフォルトになります。 MyTextViewStyle で定義されたスタイル (この例では、太字と赤) がデフォルトになります!

これは API レベル 4 以降のデバイスでテストされ、素晴らしい動作をするようです。