ListView
ฉันมีความสูงคงที่ มีตัวแบ่งระหว่างรายการ แต่ยังแสดงเส้นแบ่งหลังจากรายการสุดท้าย
มีวิธีที่จะไม่แสดงตัวแบ่งหลังจากรายการสุดท้ายในListView
หรือไม่?
ListView
ฉันมีความสูงคงที่ มีตัวแบ่งระหว่างรายการ แต่ยังแสดงเส้นแบ่งหลังจากรายการสุดท้าย
มีวิธีที่จะไม่แสดงตัวแบ่งหลังจากรายการสุดท้ายในListView
หรือไม่?
คำตอบ:
เพียงเพิ่ม
android:footerDividersEnabled="false"
คำอธิบาย ListView ของคุณ
layoutHeight="wrap_content"
รายการตัวแบ่งด้านล่างจะหายไป
ดังที่ @ScootrNova กล่าวว่าสิ่งนี้ดูเหมือนจะทำงานแตกต่างกัน (aka buggy) ใน Android 4.4.x (ฉันไม่รู้ว่าเมื่อใดที่ปัญหาถูกนำมาใช้)
สิ่งนี้เกี่ยวข้องกับกรณีเฉพาะของการใช้โดยใช้padding
+ clipToPadding="false"
- ใน 4.4.x ส่วนท้ายจะถูกดึงออกมานอกมุมมอง แต่คลิปที่มีช่องว่างภายในจะเผยให้เห็น
วิธีแก้ปัญหาที่ฉันใช้คือตั้งค่าส่วนท้าย over-scroll ( 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 ด้วย (ขอบคุณผู้แสดงความคิดเห็น!)
android:overScrollFooter
เคล็ดลับสำหรับฉัน ทำงานบน 5.0.2 และ 5.1
android:footerDividersEnabled="false"
กลับเข้าร่วม
หากคุณต้องการทำสิ่งนี้โดยใช้รหัส:
listView.setFooterDividersEnabled(false);
และหากคุณใช้ ListFragment คุณสามารถรับ listview ได้โดย:
listFragment.getListView().setFooterDividersEnabled(false);
แสดงความคิดเห็นเท่านั้นเพราะสิ่งนี้ขึ้นมาเป็นอันดับ 1 ใน Google
ดูเหมือนว่าบรรทัดด้านล่างจะไม่ทำงานบนอุปกรณ์ lollypop
listView.setFooterDividersEnabled(false);
ดังนั้นต้องใช้โค้ดด้านล่างนี้เพื่อลบตัวแบ่งหลังจากรายการสุดท้ายในรายการ
listView.setOverscrollFooter(new ColorDrawable(Color.TRANSPARENT));
ใช้ background = @android: color / transparent ทำงานได้อย่างสมบูรณ์ คุณยังสามารถใช้พื้นหลังของเค้าโครงแถวของคุณได้