Saya sedang mengembangkan aplikasi android tempat saya menggunakan RecyclerView
. Saya perlu menambahkan pembagi di RecyclerView
. Saya mencoba menambahkan -
recyclerView.addItemDecoration(new
DividerItemDecoration(getActivity(),
DividerItemDecoration.VERTICAL_LIST));
di bawah ini adalah kode xml saya -
<android.support.v7.widget.RecyclerView
android:id="@+id/drawerList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
/>
android
android-recyclerview
material-design
pertanyaan 8
sumber
sumber
Jawaban:
Dalam pembaruan Oktober 2016, perpustakaan dukungan v25.0.0 sekarang memiliki implementasi default pembagi horizontal dan vertikal dasar yang tersedia!
https://developer.android.com/reference/android/support/v7/widget/DividerItemDecoration.html
sumber
if(parent.getChildAdapterPosition(view) == state.getItemCount() - 1)
lalu kembali, panggil saja superclass 'getItemOffsets()
.mLayoutManager.getOrientation()
, saya menggunakanDividerItemDecoration.VERTICAL
dan berhasil, karena RecyclerView saya vertikal.@android:attr/listDivider
dalam tema aplikasi tidak menampilkan pembagi jika itu adalah sumber daya warna, saya harus membuat bentuk yang dapat digambar dengan warna saya dengan ketinggian tetap.Cara Tepat adalah untuk menentukan
ItemDecoration
untukRecyclerView
adalah sebagai berikutSimpleDividerItemDecoration.java
line_divider.xml:
Akhirnya atur seperti ini
Edit
Seperti yang ditunjukkan oleh @lan Solitar
didepresiasi alih-alih yang bisa Anda gunakan
sumber
Jika Anda ingin memiliki pembagi horizontal dan vertikal:
Tentukan drawer pembagi horizontal & vertikal:
horizontal_divider.xml
vertical_divider.xml
Tambahkan segmen kode ini di bawah:
sumber
DividerItemDecoration
- masing seperti ini:verticalDecoration = new DividerItemDecoration(recyclerview.getContext(), DividerItemDecoration.VERTICAL);
danhorizontalDecoration = new DividerItemDecoration(recyclerview.getContext(), DividerItemDecoration.HORIZONTAL);
.Semua jawaban ini membuat saya dekat tetapi mereka masing-masing kehilangan detail utama. Setelah sedikit riset, saya menemukan rute termudah untuk menjadi kombinasi dari 3 langkah ini:
Langkah 1: saat mengonfigurasi RecyclerView
Langkah 2: dalam file seperti res / drawable / divider_gray.xml
Langkah 3: dalam tema aplikasi
EDIT: Diperbarui untuk melewati pembagi terakhir:
Setelah menggunakan ini sedikit, saya menyadari itu menggambar pembagi setelah item terakhir, yang menjengkelkan. Jadi saya memodifikasi Langkah 1 sebagai berikut untuk menggantikan perilaku default di DividerItemDecoration (tentu saja, membuat kelas terpisah adalah pilihan lain):
sumber
for (int i = 0; i < childCount; i++)
ubah kefor (int i = 0; i < childCount - 1; i++)
Tambahkan saja View pada akhir adapter item Anda:
sumber
if(position == getItemCount() - 1) { mDividerView.setVisibility(View.INVISIBLE) }
Atau harus ada cara lain untuk melakukan ini.1px
ketinggian, tidak terlihat oleh mata kitaBerikut adalah kode untuk pembagi kustom sederhana (pembagi vertikal / tinggi 1dp / hitam):
Andaikan Anda memiliki Perpustakaan Dukungan:
kode java
kemudian sampel file custom_divider.xml:
sumber
Buat file xml terpisah di folder res / drawable
Hubungkan file xml itu (your_file) di aktivitas utama , seperti ini:
sumber
Versi Kotlin:
sumber
Saya pikir Anda gunakan
Fragments
untuk memilikiRecyclerView
Cukup tambahkan baris ini setelah membuat Objects
RecyclerView
dan AndaLayoutManager
Itu dia!
sumber
Coba kode baris tunggal sederhana ini
sumber
Anda perlu menambahkan baris berikutnya ...
sumber
Cara saya menangani tampilan Divider dan Insets Divider adalah dengan menambahkan ekstensi RecyclerView.
1.
Tambahkan file ekstensi baru dengan memberi nama View atau RecyclerView:
dan tambahkan
setDivider
metode ekstensi di dalam file RecyclerViewExtension.kt.2.
Buat file sumber daya Drawable di dalam
drawable
paket sepertirecycler_view_divider.xml
:di mana Anda dapat menentukan margin kiri dan kanan pada
android:insetLeft
danandroid:insetRight
.3.
Pada Aktivitas atau Fragmen tempat RecyclerView diinisialisasi, Anda dapat mengatur kustom yang dapat digambar dengan menelepon:
4.
Ceria 🍺
sumber
Jadi ini mungkin bukan cara yang benar, tapi saya baru saja menambahkan tampilan ke tampilan item tunggal RecyclerView (karena saya tidak berpikir ada fungsi bawaan) seperti:
Ini berarti setiap item akan memiliki garis yang mengisinya di bagian bawahnya. Saya membuatnya sekitar 1dp tinggi dengan
#111111
latar belakang. Ini juga memberinya semacam efek "3D".sumber
Anda dapat membuat pembagi sederhana yang dapat digunakan kembali.
Buat Pembagi:
Buat Garis Pembagi: divider.xml
Tambahkan pembagi ke Recyclerview Anda:
Untuk menghapus pembagi untuk item terakhir:
Untuk mencegah gambar pembagi untuk item terakhir Anda harus mengubah baris ini.
Untuk
Implementasi akhir Anda harus seperti ini:
Semoga bermanfaat :)
sumber
RecyclerView-FlexibleDivider dari yqritc menjadikan ini liner satu. Pertama tambahkan ini ke
build.gradle
:Sekarang Anda dapat mengonfigurasi dan menambahkan divder tempat Anda mengatur adaptor recyclerView Anda:
sumber
HorizontalDividerItemDecoration
kelasnya berada?Android hanya membuat hal-hal kecil terlalu rumit. Cara termudah untuk mencapai apa yang Anda inginkan, tanpa menerapkan DividerItemDecoration di sini:
Tambahkan warna latar belakang ke RecyclerView ke warna pembagi yang Anda inginkan:
Tambahkan margin bawah (android: layout_marginBottom) ke akar tata letak item (list_item.xml):
Ini harus memberi ruang 1dp antara item dan warna latar belakang RecyclerView (yang abu-abu gelap akan muncul sebagai pembagi).
sumber
Untuk membuat jawaban NJ sedikit lebih sederhana, Anda dapat melakukan:
sumber
Cukup tambahkan margin jumlah x di bagian bawah item di Anda
RecycleView Adapter
.onCreateViewHolder
sumber
Di mana
0
Horizontal dan1
Veriticalsumber
Anda hanya perlu menentukan warna di R.drawable.divider_medium
dan menambahkannya ke recyclerView Anda
rujuk ini
sumber
Solusi Bhuvanesh BS bekerja. Versi Kotlin ini:
sumber
Saya pikir ini cara termudah
Perhatikan bahwa: myshape bisa menjadi rectangel dengan tinggi yang ingin Anda buat pembagi Anda
sumber