Самый верхний и самый нижний горизонтальный разделитель не отображается в ListView
-
23-09-2019 - |
Вопрос
Я использую ListView.Но самая верхняя и самая нижняя горизонтальные полосы не отображаются.Почему?Я использую это:
android:divider="@android:drawable/divider_horizontal_bright"
Решение
Вы изучали настройку android:headerDividersEnabled
и android:footerDividersEnabled
на ListView
?
Кроме того, если вы ищете drawDivider
в платформа/фреймворки/база/+/master/core/java/android/widger/ListView.java в Репозиторий Android с открытым исходным кодом, вы сможете найти еще несколько подсказок.
Другие советы
Добавьте фиктивный нижний колонтитул и заголовок
listViewContato = (ListView) view.findViewById(R.id.listview_contatos);
listViewContato.addHeaderView(new View(getActivity()));
listViewContato.addFooterView(new View(getActivity()));
Вот как я это реализовал...Нижний разделитель появляется после настройки android:paddingBottom
для ListView
.НО в моем случае после установки android:paddingTop
верхние и нижние разделители не отображаются.Я не знаю, почему.Поэтому я добавил в свой list_item_layout.xml
следующий код:
<View
android:layout_width="match_parent"
android:layout_height="1dip"
android:background="?android:attr/listDivider" />
и в моем адаптере я просто меняю видимость этого представления:
View topDivider = v.findViewById(R.id.divider);
if (position == 0) {
topDivider.setVisibility(View.VISIBLE);
} else {
topDivider.setVisibility(View.GONE);
}
Надеюсь, это будет кому-то полезно.
у меня была такая же проблема с LibSlideMenu.
Как android:headerDividersEnabled
если установлено значение true, разделитель заголовка в скользящем меню не отображается, я решил это, изменив slidemenu.xml
(нет slidemenu_listitem.xml
) к
<LinearLayout ...>
<LinearLayout ...>
<ImageView ...> (this is the header image on top of the menu)
<View
android:layout_width="250dip"
android:layout_height="2dip"
android:background="@drawable/divider" />
<ListView ...> (this is the ListView for the MenuItems)
</LinearLayout>
<FrameLayout ...>
</FrameLayout ...>
</LinearLayout>
Это добавит разделитель вручную.