ฉันจะลบบรรทัดระหว่าง 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"/>

มีหนึ่งบรรทัดว่างระหว่างสองListViews ฉันจะลบออกได้อย่างไร


3
คุณมี ListViews สองรายการแยกกันแสดงรายการที่แตกต่างกันหรือคุณหมายถึงมีบรรทัดระหว่างรายการใน ListView ของคุณหรือไม่
Dave Webb

มันเป็น "ช่องว่าง" หรือ "เส้นสีดำ" หรือไม่? เนื่องจากคำถามถูกแก้ไขโดยบุคคลอื่นที่ไม่ใช่ OP มีความแตกต่างระหว่างสิ่งเหล่านั้น
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 ไม่ทำงานสำหรับฉัน ต้องตั้งค่าในรหัส
Jeffrey Blattman

8
ทำงานใน XML สำหรับฉัน ควรใส่ใน <ListView> </Listview> สงสัยว่าทำไมสิ่งนี้จึงไม่ได้รับการยอมรับว่าเป็นคำตอบที่ถูกต้อง
zolio

1
เราจำเป็นต้องทำทั้งสองอย่าง (ลบล้างและทำให้เป็นศูนย์) หรือเพียงหนึ่งเพียงพอหรือไม่
guness

3
@Pranav ได้โปรดเป็นครูขอเขียนเกี่ยวกับการเขียนโปรแกรม ขอบคุณ.
Geltrude

1
dividerHeight แปลกประหลาดอย่างยิ่ง = 0 ไม่ทำงาน, ตัวแบ่งเท่านั้น = @ null ได้ ทำไม?
Chintan Shah

96
  1. หากคุณต้องการลบบรรทัดตัวแบ่งให้ใช้รหัสนี้:

    android:divider="@null"
  2. หากคุณต้องการเพิ่มช่องว่างแทนเส้นแบ่ง:

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

ดังนั้นคุณสามารถใช้ drawable หรือ color ในแอตทริบิวต์ divider


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

ตั้งค่าตัวแบ่งเป็น 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 tag

android:divider="@null"

(หรือ) โปรแกรมlistview.Divider(null); ที่นี่listviewคือListViewการอ้างอิง


10

หรือใน XML:

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

คุณสามารถใช้สีสำหรับ drawable (เช่น # ff112233) แต่โปรดทราบว่าการเปิดตัวคัพเค้กล่วงหน้ามีข้อบกพร่องที่ไม่สามารถตั้งค่าสีได้ ต้องใช้ 9-patch หรือรูปภาพแทน ..


หรือคุณสามารถใช้ Android มาตรฐานที่สามารถวาดได้สำหรับตัวหาร:@android:drawable/divider_horizontal_...
racs

9

คุณสามารถลองต่อไปนี้ มันใช้งานได้สำหรับฉัน ...

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

7

ฉันคิดว่ามันง่ายกว่าที่จะใช้มันในไฟล์ XML เพราะมันยากที่จะติดตามบรรทัดของโค้ดในคลาสที่มีหลายร้อยบรรทัด สำหรับ XML คุณสามารถใช้ "null":

android:divider="@null"


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.