Domanda

Sto cercando di aggiungere un divisore tra le voci in un LinearLayout verticale, per emulare l'aspetto di un ListView. (Non posso usare un controllo ListView in questa particolare situazione.)

Questo è quello che ho in list_divider.xml:

<?xml version="1.0" encoding="utf-8"?>
<View
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:background="@color/panel_border"
  android:layout_width="fill_parent"
  android:layout_height="@dimen/border_width"
 />

Ed ecco il codice che i tentativi di gonfiare questo divisore prima di ogni elemento, tranne il primo della lista:

LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
for (int i = 0; i < categories.size(); i++ ) {

    if (i > 0)
        items.addView(vi.inflate(R.layout.list_divider, null));    
        // these dividers never appear

    // but these main entries always appear just fine    
    items.addView(ad.getView(i, null, null));
}

Le principali voci di elenco vengono visualizzati correttamente, ma i divisori sono invisibili.

I divisori do visualizzato se cambio loro di essere un TextView piuttosto che una pianura Vista:

<?xml version="1.0" encoding="utf-8"?>
<TextView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:background="@color/panel_border"
  android:layout_width="fill_parent"
  android:layout_height="@dimen/border_width"
  android:text="---"
 />

Ho provato a fissare i valori dei pixel espliciti per la larghezza e l'altezza, così come usando le opzioni di definizione e fill_parent border_width. Non fa alcuna differenza.

C'è qualcosa di speciale in una vecchia vista normale che lo rende non appare?

È stato utile?

Soluzione

Alla fine ho lavorato intorno ad esso avvolgendo il mio divisorio View all'interno di una FrameLayout. Sembra che avere un unico vuoto senza contenuto semplicemente non funziona.

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">

  <View
    android:background="@color/panel_border"
    android:layout_width="fill_parent"
    android:layout_height="@dimen/border_width" />

</FrameLayout>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top