Saya memiliki tinggi yang tetap ListView
. Ini memiliki pemisah antara item daftar, tetapi juga menampilkan pemisah setelah item daftar terakhir.
Apakah ada cara untuk tidak menampilkan pembatas setelah item terakhir masuk ListView
?
Jawaban:
Cukup tambahkan
android:footerDividersEnabled="false"
ke deskripsi ListView Anda
layoutHeight="wrap_content"
, pembatas bawah menghilang.
Seperti yang dikatakan @ScootrNova, ini tampaknya berperilaku berbeda (alias buggy) di android 4.4.x (saya tidak tahu persis kapan masalah muncul)
Ini terkait dengan kasus khusus penggunaan padding
+ clipToPadding="false"
- di 4.4.x footer digambar di luar tampilan tetapi klip ke padding mengungkapkannya.
Solusi yang saya gunakan adalah mengatur footer over-scroll ( android:overScrollFooter
) menjadi transparan yang entah bagaimana berfungsi ...
Solusi terakhir saya (catatan yang android:footerDividersEnabled
disimpan untuk kompatibilitas kembali):
<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"
/>
diuji pada HTC One X menjalankan 4.1.1, Nexus 5 menjalankan 4.4.4 dan Samsung Galaxy S5 menjalankan 4.4.2 (terima kasih kepada @ Dallas187). Sepertinya Lollipop juga berfungsi. (terima kasih kepada pemberi komentar!)
android:overScrollFooter
melakukan trik untuk saya. Bekerja pada 5.0.2 dan 5.1.
android:footerDividersEnabled="false"
kompat belakang
Jika Anda ingin melakukan ini dengan kode itu:
listView.setFooterDividersEnabled(false);
dan jika Anda menggunakan ListFragment, Anda bisa mendapatkan listview dengan:
listFragment.getListView().setFooterDividersEnabled(false);
Hanya dikomentari karena ini muncul sebagai # 1 di google
Tampaknya baris di bawah ini tidak berfungsi pada perangkat lollypop.
listView.setFooterDividersEnabled(false);
Jadi perlu menggunakan kode di bawah ini untuk menghapus pembagi setelah item terakhir dalam daftar.
listView.setOverscrollFooter(new ColorDrawable(Color.TRANSPARENT));