如何在Android上的ListViews之间删除线?


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

两个ListViews 之间有一个空白行。如何删除它?


3
您是否有两个单独的ListView显示不同的列表,或者您是说ListView中的项目之间有一行?
Dave Webb

是“空白”线还是“黑色”线?由于问题是由OP以外的其他人编辑的。两者之间是有区别的
miva2

1
@deepthi,您是否考虑将答案之一标记为已接受?
Antek

Answers:


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
我们是否需要同时进行(nullify和zeroify)还是足够?
guness

3
@Pranav。请老师,让我们来写编程。谢谢。
Geltrude 2014年

1
很奇怪,只有dividerHeight = 0无效,只有divider = @ null有效。为什么?
Chintan Shah 2015年

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,以避免在listview元素之间添加空格:

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

您可以在列表视图标签中的属性下方放置

android:divider="@null"

(或)编程listview.Divider(null); 这里listviewListView参考。


10

或使用XML:

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

您可以为可绘制对象使用一种颜色(例如,#ff112233),但请注意,纸杯蛋糕预发行版中存在一个无法设置颜色的错误。而是必须使用9补丁或图像。


或者,您甚至可以为分隔线使用标准的Android可绘制对象:@android:drawable/divider_horizontal_...
racs

9

您可以尝试以下方法。它对我有用...

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

7

我发现在XML文件中实现它更容易,因为在具有数百行的类中跟踪代码行可能会更加困难。对于XML,可以使用“ null”:

android:divider="@null"

5

供ListFragment使用

getListView().setDivider(null)

获得列表之后。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.