Android vista gonfiato è vuoto
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?
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>