2

NumberPicker のテキストの色を変更しようとしています!

状態が有効で、状態の異なる色が無効になっている場合、異なる状態で異なる色が必要です。

ここに私の番号ピッカーコードがあります:

 <NumberPicker
                    android:id="@+id/NumberOfWebsitesPicker"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:scaleX="0.75"
                    style="@style/MyStyle"
                    android:descendantFocusability="blocksDescendants"
                    android:scaleY="0.75" />

ここに私のtext_color.xmlがあります

Res->Color Direcoty

 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:color="#9D9FA2" />
    <item android:state_enabled="true" android:color="#FAFAFA" />

</selector>

今ここに私のstyle.xmlがあります

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:colorBackground">@color/colorBackground</item>

        <!--  It should be true otherwise action mode will not overlay toolbar -->
        <item name="windowActionModeOverlay">true</item>
        <!--  For Custom Action Mode Background Color/Drawable -->
        <item name="actionModeBackground">@color/colorPrimary</item>

        <item name="android:textColor">@color/text_color</item>

        <item name="android:textColorPrimary">@color/text_color</item>

        <item name="android:colorControlNormal">@color/divider_color</item>

        <item name="android:divider">@color/divider_color</item>

        <item name="android:textColorHint">@color/colorPrimary</item>

        <item name="android:textSize">@dimen/font_size_14</item>

        <item name="actionBarSize">56dp</item>

        <item name="android:spinnerItemStyle">@style/Spinner_Item_Style</item>
        <item name="android:spinnerDropDownItemStyle">@style/Spinner_DropDown_Item_Style</item>
        <item name="android:dropDownListViewStyle">@style/SpinnerStyle</item>


    </style>


    <style name="Divider">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">2dp</item>
        <item name="android:background">@color/divider_color</item>
    </style>

    <style name="DividerThin">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">2px</item>
        <item name="android:background">@color/divider_color</item>
    </style>

    <style name="Vertical_divider" parent="DividerThin">
        <item name="android:layout_width">2px</item>
        <item name="android:background">@color/divider_color</item>
        <item name="android:layout_height">match_parent</item>
    </style>

    <style name="Vertical_divider_thick" parent="Divider">
        <item name="android:layout_width">2dp</item>
        <item name="android:background">@color/divider_color</item>
        <item name="android:layout_height">match_parent</item>
    </style>


    <style name="Spinner_Item_Style">
        <item name="android:gravity">center</item>
        <item name="android:textAlignment">center</item>
    </style>

    <style name="Spinner_DropDown_Item_Style" parent="Widget.AppCompat.ListView.DropDown">
        <item name="android:gravity">center</item>
        <item name="android:textAlignment">center</item>
        <item name="android:paddingStart">@dimen/unit_8dp</item>
        <item name="android:paddingEnd">@dimen/unit_8dp</item>

    </style>

    <style name="SpinnerStyle" parent="Widget.AppCompat.ListView.DropDown">
        <item name="android:divider">@color/divider_color</item>
        <item name="android:dividerHeight">1px</item>
    </style>


    <style name="MyStyle">

        <item name="android:colorPrimary">@color/text_color</item>

    </style>


</resources>

ここでは一度だけ非常にうまく機能し、次に Number Picker が無効になったときに色を白に保ち、text_color セレクター ファイルで宣言された無効な色で色を変更しません。

なぜそれが一度しか機能しないのか、私はそれを理解していません。

Numberpicker が onCreateView で無効になっている場合、ボタンを押してピッカーを手動で無効にすると、無効状態の色が表示されます。テキストの色が無効な色に変わりますが、有効にすると、有効な色の色を取り、値を変更して再度無効にします。無効な色にはなりません。

一度だけ機能し、ピッカーの値を変更した後は機能しません。

4

1 に答える 1