Android раздутый вид пуст - PullRequest
       15

Android раздутый вид пуст

1 голос
/ 08 сентября 2010

Я пытаюсь добавить разделитель между записями в вертикальной LinearLayout, чтобы эмулировать внешний вид ListView. (Я не могу просто использовать ListView в этой конкретной ситуации.)

Это то, что у меня есть в 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"
 />

А вот код, который пытается накачать этот разделитель перед каждым элементом, кроме первого в списке:

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));
}

Основные элементы списка отображаются правильно, но разделители невидимы.

Разделители do появляются, если я изменю их на TextView, а не на простое View:

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

Я попытался установить явные значения пикселей для ширины и высоты, а также использовать параметры border_width и fill_parent. Это не имеет значения.

Есть ли что-то особенное в простом старом виде, которое не позволяет ему появиться?

1 Ответ

0 голосов
/ 09 сентября 2010

В конце концов я обошел его, обернув свой разделитель View внутри FrameLayout. Кажется, что один пустой просмотр без содержимого просто не работает.

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