Навигация ящика пункт цвет фона для выбранного элемента

? DemandedCross @ | Original: StackOverFlow
---

Я использовал для Android Студия для реализации навигации ящик и я не могу получить синий цвет, который используется, чтобы показать, какой раздел мы в настоящее время меняться.

Я пытался много вещей, которые я в настоящее время использую listSelector, который выглядит примерно так:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_activated="true" android:drawable="@color/selected" />
    <item android:state_pressed="true" android:drawable="@color/highlight" />


</selector>

Я также попытался state_checked . state_pressed Работает в этой ситуации, новыбранный элемент по-прежнему синий .

EDIT: Я Рассматривая этот больше и когдаадаптер создан контекст, который передается в getActionBar().getThemedContext() так что я думаю, если я могу найти правильный атрибут для назначения моего стиля ActionBar я могу изменить его оттуда. Я пыталсянесколько разные атрибуты, не повезло . Кто-нибудь знает точную атрибут ?

Я также понял, если я поставлю

<item name="android:activatedBackgroundIndicator">@drawable/nav_listview_selector</item>

в основной части моей темы и изменения getActionBar().getThemedContext() для getActivity.getBaseContext, то я могу изменить цвет, но я не думаю, что этоправильный путь . Я думаю, что должны быть использованытематические контекст . Так что, если кто-нибудь знает, гдеactivatedBackgroundIndicator может ставить так, что она будет использоваться в getActionBar.getThemedContext()

EDIT2:

Таквид Текст, используемый для ListView является одним рамках SDK это выглядит так :

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceListItemSmall"
    android:gravity="center_vertical"
    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
    android:background="?android:attr/activatedBackgroundIndicator"
    android:minHeight="?android:attr/listPreferredItemHeightSmall"
/>

Так что я попытался изменения "?android:attr/activatedBackgroundIndicator" на уровне темы, но это не имеет никакого эффекта проверить / выбран / активирован, но это не для нажатия . Кто-нибудь знает, почему это ? И как я могу изменить его?

---

Top 5 ответ

1stan0 @

В дополнение к пользовательской Drawable выбора для listSelector, вы должны также установить фоновый ресурс элемента списка с аналогичным селектора чтобы сместить который имеет различные вводимого коэффициента для различных государств.

2Ripityom @

Я обычно использую мои пользовательские адаптер, который имеет поле выбора INT, и функцию setSelection (INT) . И в функции GetView я установить фон зрения в соответствии с положением == отбора.

3DemandedCross @

До сих пор не знаю, почему он является то, что он не работает . Но, как я нашел вокруг него, чтобы использовать свой собственный simple_list_item_activated макет быть переданы в ArrayAdapter, который был в основномже для установки цвета текста на белый, за исключением . Затем я заменил getActionBar().getThemedContext() с getActivity().getBaseContext() и теперь он имеет эффект.

Это не может бытьправильным способом и может иметь последствия в будущем, но сейчас он у меня работает так, как я хочу, чтобы .

4Query @
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:drawable="@color/list_item_back_pressed" android:state_pressed="true" />
    <item  android:state_activated="true"><color android:color="@color/primary_blue"/></item>
   <item android:drawable="@color/list_item_back_normal"/>

</selector>
5Bhavin Chauhan @

У меня есть реализовать меню Ящик с пользовательского класса адаптера. Может быть, это кому-то поможет ящика Список

<ListView
    android:id="@+id/listview_drawer"
    android:layout_width="260dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="@color/menu_item_color"
    android:choiceMode="singleChoice"
    android:divider="@android:color/transparent"
    android:dividerHeight="0dp"
    android:fadingEdge="none"
    />

drawer_list_item.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" 
android:background="@drawable/menu_selector"
>

<ImageView
    android:id="@+id/imgIcon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_marginLeft="12dp"
    android:layout_marginRight="12dp"
    android:src="@drawable/ic_menu_home" />

<TextView
    android:id="@+id/lblName"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_centerVertical="true"
    android:gravity="center_vertical"
    android:layout_toRightOf="@+id/imgIcon"
    android:minHeight="48dp"
    android:textColor="@color/menu_txt_color" />

menu_selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android" android:exitFadeDuration="@android:integer/config_mediumAnimTime">
<!-- selected -->
<item android:drawable="@color/menu_item_active_color" android:state_focused="true" android:state_pressed="false"/>
<item android:drawable="@color/menu_item_active_color" android:state_pressed="true"/>
<item android:drawable="@color/menu_item_active_color" android:state_activated="true"/>
<item android:drawable="@color/menu_item_active_color" android:state_checked="true"/>
<item android:drawable="@color/menu_item_active_color" android:state_selected="true"/>

<item android:drawable="@color/menu_item_color" android:state_activated="false"/>

Добавить это по пункту нажмите listner из ListView yourlistview.setItemChecked (должность, правда) ;