Как удалить линии между ListViews на Android?


401

Я использую два ListViewс, как это:

<ListView
   android:id="@+id/ListView"
   android:text="@string/Website"
   android:layout_height="30px"
   android:layout_width="150px"
   android:scrollbars="none"
   android:transcriptMode="normal"/>
<ListView
   android:id="@+id/ListView1"
   android:text="@string/Website"
   android:layout_height="30px"
   android:layout_width="150px"
   android:scrollbars="none"
   android:transcriptMode="normal"/>

Между двумя ListViewбуквами есть одна пустая строка . Как мне это убрать?


3
У вас есть два отдельных ListView, показывающих разные списки, или вы имеете в виду, что у вас есть линия между элементами в вашем ListView?
Дейв Уэбб

Это «пустая» или «черная» линия? Так как вопрос был отредактирован кем-то кроме ОП. Между ними есть разница
miva2

1
@deepthi, не могли бы вы отметить, что один из ответов принят?
Antek

Ответы:


926

Чтобы удалить разделитель между элементами в одном и том же ListView, вот решение:

getListView().setDivider(null);
getListView().setDividerHeight(0);

developer.android.com # ListView

Или, если вы хотите сделать это в XML:

android:divider="@null"
android:dividerHeight="0dp"

2
по какой-то причине установка его в XML не работает для меня. пришлось установить это в коде.
Джеффри Блатман

8
Работал в XML для меня. Должен положить в <ListView> </ Listview>. Интересно, почему это не было принято как правильный ответ.
Zolio

1
нам нужно сделать оба (обнулить и обнулить) или достаточно одного?
Гюнесс

3
@Pranav. Пожалуйста, учитель, давайте напишем о программировании. Спасибо.
Geltrude

1
Странно только dividerHeight = 0 не сработало, только divider = @ null сработало. Почему?
Чинтан Шах

96
  1. Если вы хотите удалить разделительную линию, используйте этот код:

    android:divider="@null"
  2. Если вы хотите добавить пробел вместо разделительной линии:

    android:divider="@android:color/transparent"
    android:dividerHeight="5dp"

Таким образом, вы можете использовать любой оттенок или цвет в атрибуте делителя.


65

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

1. Установите делитель на ноль:

1.1. Программный

yourListView.setDivider(null);

1.2. XML

Это идет внутри вашего элемента ListView.

android:divider="@null"

2. Установите разделитель на прозрачный и установите его высоту на 0, чтобы избежать добавления пробела между элементами списка:

2.1. Программный:

yourListView.setDivider(new ColorDrawable(android.R.color.transparent));
yourListView.setDividerHeight(0);

2.2. XML

android:divider="@android:color/transparent"
android:dividerHeight="0dp"

1
В некоторых ситуациях возникает проблема с установкой прозрачного цвета делителя. Каждый из элементов ListView имел сплошной полупрозрачный фон. Когда я использовал второй метод сокрытия разделителя, казалось, что «разделитель» все еще появлялся. Когда я переключился на первый метод, «разделитель» исчез.
Themarshal


20

Установите делитель на ноль:

ЯВА

  listview_id.setDivider(null);

XML

<ListView 
  android:id="@+id/listview"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:divider="@null"
  />

15
   <ListView xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/list"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:divider="@null"
  android:dividerHeight="0dp"/>

1
Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, как и / или почему он решает проблему, улучшит долгосрочную ценность ответа.
Дональд Дак

12

Вы можете поместить ниже свойство в теге listview

android:divider="@null"

(или) программным способом listview.Divider(null); здесь listviewявляется ListViewссылка.


10

Или в XML:

android:divider="@drawable/list_item_divider"
android:dividerHeight="1dp"

Вы можете использовать цвет для рисования (например, # ff112233), но имейте в виду, что в выпусках перед кексом есть ошибка, из-за которой нельзя установить цвет. Вместо этого необходимо использовать 9-патч или изображение.


Или вы даже можете использовать стандартную Android для @android:drawable/divider_horizontal_...
рисования

9

Вы можете попробовать следующее. У меня это сработало ...

android:divider="@android:color/transparent"
android:dividerHeight="0dp" 

7

Мне проще реализовать его в XML-файле, так как будет сложнее отследить строку кода в классе с сотнями строк. Для XML вы можете использовать «null»:

android:divider="@null"

5

Для использования ListFragment

getListView().setDivider(null)

после того, как список был получен.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.