Domanda

ATTENZIONE: l'XML in questa domanda è sbagliato, leggi la risposta prima di confonderti!


Ho sbattuto la testa sul muro per un po 'di tempo. I seguenti post hanno fatto luce sull'argomento, ma non sono riusciti a risolvere il mio problema: Android ListView State Elenco non mostrando sfondo predefinito e Sfondo elemento elenco elenco tramite selettore personalizzato

Lo sfondo corretto a nove patch mostra perfettamente quando seleziono l'elemento dell'elenco, ma non riesco a ottenere lo sfondo a nove patch predefinito da mostrare inizialmente. Mi sembra che devo impostare in qualche modo lo sfondo dell'articolo predefinito, ma non riesco a capire come farlo.

Visualizzazione elenco:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical">
  <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/shopListHeader"
    />
  <ListView
    android:id="@+id/shopList"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:dividerHeight="0px"
    android:divider="#FFFFFFFF"
    android:listSelector="@drawable/shop_list_selector"
    />
</LinearLayout>

Selettore:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
  android:visible="true">

    <!-- the list items are enabled and being pressed -->
    <item
        android:state_pressed="true"
        android:drawable="@drawable/shop_list_item_pressed" />

    <item
        android:state_selected="true"
        android:textColor="#FFFFFFFF" />
</selector>

Sfondo:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
  android:visible="true">

    <item
      android:state_selected="true"
      android:drawable="@android:color/transparent" />

    <item
        android:drawable="@drawable/shop_list_item" />
</selector>

Come puoi vedere, ho smorzato gli esempi dai riferimenti.

Potresti anche notare che il selettore di fondo non viene referenziato da nessuna parte. Ho iniziato a lanciarlo in luoghi casuali (se l'app ha compilato l'aggiunta o non ha avuto effetto o causato una chiusura forzata)

Ho anche tentato di impedire al colore del testo di cambiare in nero e grigio quando un elemento è selezionato ma non pressato (può essere fatto scorrendo attraverso l'elenco). Poiché il mio sfondo sarà nero al centro, il testo diventa parzialmente invisibile quando selezionato. Tale aggiunta (l'ultimo nodo elemento nel selettore) non fa nulla, per quanto posso dire.

Qualcuno ha qualche idea su come far funzionare questa funzionalità ridicolmente che richiede tempo?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top