Navigazione cassetto colore dell'articolo di sfondo per l'elemento selezionato

? DemandedCross @ | Original: StackOverFlow
---

Ho usato Android Studio per implementare la navigazione cassetto e non riesco a ottenere il colore blu che è utilizzata per mostrare quale sezione stiamo attualmente per cambiare .

Ho provato molte cose, Attualmente sto usando un listSelector che assomiglia a :

<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>

Ho anche provato state_checked . state_pressed Funziona in questa situazione, ma l'elemento selezionato è ancora blu .

EDIT : Ho esaminato questo sempre quando la scheda viene creato il contesto che è passato è getActionBar().getThemedContext() così sto pensando se riesco a trovare l'attributo diritto di assegnare al mio stile ActionBar posso cambiare da lì . Ho provato un paio di attributi diversi senza fortuna . Qualcuno sa l'attributo esatto ?

Ho anche capito se metto

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

nella parte principale del mio tema e cambiamento getActionBar().getThemedContext() per getActivity.getBaseContext allora posso cambiare il colore, ma non credo che questo sia il modo corretto . Penso che il contesto a tema dovrebbe essere usato . Quindi, se qualcuno sa dove la activatedBackgroundIndicator potrebbe essere messo in modo che sarebbe stato utilizzato in getActionBar.getThemedContext()

EDIT2:

Così la visione del testo utilizzato per la ListView è uno dentro l'SDK che appare così :

<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"
/>

Così ho cercato di modificare la "?android:attr/activatedBackgroundIndicator" a livello tematico, ma non ha alcun effetto per controllare / selezionato / attivato ma non per pressione . Qualcuno sa perché questo è ? E come posso cambiarlo ?

---

Top 5 Risposta

1stan0 @

Oltre a fornire un selettore disegnabile personalizzato per il listSelector, si dovrebbe anche impostare lo sfondo delle risorse della voce di elenco a un drawable selettore di simile che ha diversi drawable per i diversi stati .

2Ripityom @

Io di solito uso il mio adattatore personalizzato che ha un campo di selezione int, e una funzione setSelection ( int ) . E nella funzione GetView ho impostato lo sfondo della vista in funzione della posizione == selezione .

3DemandedCross @

Ancora non è sicuro perché è che non funziona . Ma il modo che ho trovato in giro è quello di usare il mio layout simple_list_item_activated per essere passato al ArrayAdapter che era praticamente la stessa, tranne per impostare il colore del testo bianco . Poi ho sostituito getActionBar().getThemedContext() con getActivity().getBaseContext() e ha ora un effetto .

Questo non può essere il modo corretto e può avere ripercussioni in futuro, ma per ora ce l'ho a lavorare il modo in cui voglio io .

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 @

Ho implementare menù cassetto con classe adattatore personalizzato . Può essere che aiuterà qualcuno Lista cassetto

<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"/>

Aggiungi questo articolo scatti su listner di listview yourlistview.setItemChecked (posizione, true);