Убери нижний разделитель андроида ListView - PullRequest
93 голосов
/ 10 февраля 2011

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

Есть ли способ не отображать разделитель после последнего элемента в ListView?

Ответы [ 5 ]

183 голосов
/ 25 февраля 2011

Просто добавьте android:footerDividersEnabled="false" в описание ListView

80 голосов
/ 24 июня 2014

Как сказала @ScootrNova, похоже, что в 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 тоже.(спасибо комментаторам!)

18 голосов
/ 10 октября 2012

Если вы хотите сделать это с помощью кода, это:

listView.setFooterDividersEnabled(false);

, и если вы используете ListFragment, вы можете получить просмотр списка по:

listFragment.getListView().setFooterDividersEnabled(false);

Только комментируется, потому что этопоявляется как № 1 в Google

9 голосов
/ 28 июля 2016

Кажется, что нижняя строка не работает на устройстве lollypop.

listView.setFooterDividersEnabled(false);

Поэтому необходимо использовать этот код ниже, чтобы удалить разделитель после последнего элемента в списке.

listView.setOverscrollFooter(new ColorDrawable(Color.TRANSPARENT));
0 голосов
/ 23 февраля 2018

Использовать фон = @android: цвет / прозрачность.Работает отлично.Вы все еще можете использовать фон вашего макета строки

...