1. ホーム
  2. android

[解決済み] Androidです。スピナーウィジェットの文字色属性はどこに隠れているのですか?

2023-07-16 07:09:15

質問

ドロップダウンから項目を選択した後、スピナーボタンに表示される単一の項目のテキスト色を変更しようとしています。Android SDK の themes.xml と styles.xml を 1 時間ほど熟読しましたが、スピナーがどこから色の値を取得しているのかがわかりません。

明確にするために、私はドロップダウン項目の色を変更しようとしているのではなく、ドロップダウンがないときにスピナーの表示テキストの色を変更しようとしているのです。私は、それをスピナーの「ボタン」テキストと呼ぶことができると思います。

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

おそらくstyles.xmlのこの部分だと思います。

<style name="Widget.TextView.SpinnerItem">
    <item name="android:textAppearance">@style/TextAppearance.Widget.TextView.SpinnerItem</item>
</style>
<style name="Widget.DropDownItem.Spinner">
    <item name="android:checkMark">?android:attr/listChoiceIndicatorSingle</item>
</style>

-= EDIT =- その結果がこちらです。

で、以下がその結果です。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MooTheme" parent="android:Theme">
        <item name="android:spinnerItemStyle">@style/MooSpinnerItem</item>
    </style>

    <style name="MooSpinnerItem" parent="android:Widget.TextView.SpinnerItem">
        <item name="android:textAppearance">@style/MooTextAppearanceSpinnerItem</item>
    </style>

    <style name="MooTextAppearanceSpinnerItem" parent="android:TextAppearance.Widget.TextView.SpinnerItem">
        <item name="android:textColor">#F00</item>
    </style>
</resources>

次に、AndroidManifest.xml の application タグに次のように追加します。

android:theme="@style/MooTheme"