Spinner не применяет атрибут dropDownSelector

Я использую spinner и хочу добавить spinner - для изменения поведения зависит от состояний (сфокусированных, нажатых)

Пример проекта здесь https://github.com/vovs/spinner_issue

Мой код:

activity_main.xml

<Spinner
        android:id="@+id/spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp"
        android:spinnerMode="dropdown"
        android:dropDownSelector="@drawable/spinner_state" />

spinner_state.xml

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_enabled="false"
        android:drawable="@color/black" />
    <item
        android:state_pressed="true"
        android:state_enabled="true"
        android:drawable="@color/red" />
    <item
        android:state_focused="true"
        android:state_enabled="true"
        android:drawable="@color/red" />
    <item
        android:state_enabled="true"
        android:drawable="@color/gray" />
</selector>

AndroidManifest:

<uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />

Итак, если я запустил приложение в эмуляторе Android 4.0.2 API 14 и попытаюсь выбрать какой-либо элемент или прокрутить с помощью колеса моей мыши никакого эффекта, который я установил в селекторе (при нажатии или прокрутке - элементы должны быть красными, но он синий - по умолчанию для цвета ICS).

Для Android 2.2 API 8 при нажатии или прокрутке с помощью колеса (в этом случае состояние сфокусировано) цвет желтый [оранжевый] (цвет по умолчанию для Android 2.2)

Как включить селектор для счетчика?

enter image description here

Ответ 1

также официальная ошибка... https://code.google.com/p/android/issues/detail?id=24922

что помогает:

<resources>
    <style name="Theme.MyTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:dropDownListViewStyle">@style/Theme.MyListView</item>
    </style>

    <style name="Theme.MyListView" parent="@android:style/Widget.Holo.Light.ListView">
        <item name="android:listSelector">@drawable/orange_list</item>
    </style>
</resources>

Удачи!

Ответ 2

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:drawable="@color/lighter_gray_no_transparent" />
    <item android:state_selected="true" android:drawable="@color/lighter_gray_no_transparent" />
    <item android:state_pressed="true" android:drawable="@color/lighter_gray_no_transparent" />
    <item android:drawable="@android:color/transparent"/>
</selector>

<color name="lighter_gray_no_transparent">#FFDDDDDD</color>

установите селектор backgroud для вашего элемента просмотра, это все. Работайте со мной. Значение цвета альфа должно быть FF, или оно будет отображать оранжевый фон, одно значение цвета #FFDDDDD, правый # 55DDDDDD

enter image description hereenter image description here

Ответ 3

Могут быть и другие способы, но здесь я понимаю, что я использовал один из .

Объявите свой собственный стиль для счетчика в вашем res/values/styles.xml, указывая на ваш drawable.

<style name="myCustomSpinner" parent="android:Widget.Holo.Light.Spinner">
    <item name="android:background">@drawable/spinner_state</item>
</style>

Создайте res/values/themes.xml и объявите свою собственную тему, которая наследуется от текущей темы. В рамках этой темы добавьте элемент для каждого атрибута, который вы изменяете, и укажите его на свой собственный стиль с последнего шага. Я думаю, что это может пойти в файле стилей, если вы захотите, но так как генератор отделяет их, я следую примеру.

<style name="myCustomTheme" parent="android:Theme.Light">
    <item name="android:dropDownSpinnerStyle">@style/myCustomSpinner</item>
</style>

В AndroidManifest добавьте android:theme="@style/myCustomTheme" к открывающему тегу application.

Ваши значения для parent будут зависеть от того, как проект настроен, и я думаю, что это будет стиль прядильщиков в вашем проекте, а не только один. Попробуйте и дайте мне знать, что вы получаете.