Як видалити рядки між ListViews на Android?


401

Я використовую два ListViews так:

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

Між двома ListViews є один порожній рядок . Як її видалити?


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

Це "порожня" чи "чорна" лінія? Оскільки питання було відредаговане кимось, окрім ОП. Є різниця між тими
miva2

1
@deepthi, чи вважаєте ви позначення однієї з відповідей прийнятою?
Антек

Відповіді:


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>. Цікаво, чому це не було прийнято як правильну відповідь.
золіо

1
чи потрібно робити обидва (зводити нанівець і нульову) або достатньо лише одного?
гунеса

3
@Pranav. Вчителю, будь ласка, напишемо про програмування. Дякую.
Geltrude

1
Дивно, тільки роздільникHeight = 0 не працював, тільки дільник = @ null зробив. Чому?
Чінтан Шах

96
  1. Якщо ви хочете видалити роздільник, використовуйте цей код:

    android:divider="@null"
  2. Якщо ви хочете додати пробіл замість лінії поділки:

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

Отже, ви можете використовувати будь-який малюваний або кольоровий в атрибуті дільник.


65

Існують різні способи досягти цього, але я не впевнений, який із них найкращий (я навіть не знаю, чи є найкращий спосіб). Я знаю принаймні два різні способи зробити це у ListView:

1. Встановіть дільник на null:

1.1. Програмно

yourListView.setDivider(null);

1.2. XML

Це стосується вашого елемента ListView.

android:divider="@null"

2. Встановіть роздільник прозорим і встановіть його висоту на 0, щоб уникнути додавання місця між елементами перегляду listlist:

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 мав напівпрозорий тло кольорового кольору. Коли я використовував другий метод приховування дільника, все одно, здавалося, з'явився "роздільник". Коли я перейшов на перший метод, "дільник" зник.
тематичний маршал


20

Встановити дільник на null:

JAVA

  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"


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.