У меня фиксированная высота ListView
. Он имеет разделитель между элементами списка, но также отображает разделители после последнего элемента списка.
Есть ли способ не отображать разделитель после последнего элемента в ListView
?
У меня фиксированная высота ListView
. Он имеет разделитель между элементами списка, но также отображает разделители после последнего элемента списка.
Есть ли способ не отображать разделитель после последнего элемента в ListView
?
Просто добавьте
android:footerDividersEnabled="false"
к описанию ListView
Как сказал @ScootrNova, это похоже на поведение по-разному (a.k.a buggy) в android 4.4.x(я не знаю точно, когда проблема возникает)
Это связано с конкретным случаем использования с помощью padding
+ clipToPadding="false"
- в 4.4.x нижний колонтитул выведен за пределы вида, но клипы для заполнения показывают его.
Решением, которое я использовал, было установить прозрачность нижнего колонтитула (android:overScrollFooter
), которая как-то работает...
Мое окончательное решение (обратите внимание, что android:footerDividersEnabled
поддерживается для обратной совместимости):
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/activity_horizontal_margin"
android:divider="@color/divider"
android:dividerHeight="1px"
android:clipToPadding="false"
android:scrollbarStyle="outsideInset"
android:overScrollFooter="@android:color/transparent"
android:footerDividersEnabled="false"
/>
протестирован на HTC One X, работающем под управлением 4.1.1, Nexus 5 с 4.4.4 и Samsung Galaxy S5 с 4.4.2 (благодаря @Dallas187). Кажется, тоже работает Lollipop. (спасибо комментаторам!)
Если вы хотите сделать это по коду, это:
listView.setFooterDividersEnabled(false);
и если вы используете ListFragment, вы можете получить listview:
listFragment.getListView().setFooterDividersEnabled(false);
Только прокомментировано, потому что это выглядит как # 1 в google
Похоже, что линия не работает на устройстве lollypop.
listView.setFooterDividersEnabled(false);
Поэтому необходимо использовать этот ниже код для удаления разделителя после последнего элемента в списке.
listView.setOverscrollFooter(new ColorDrawable(Color.TRANSPARENT));