Apakah ExpandableListView
ada cara untuk menyembunyikan indikator kelompok untuk kelompok tanpa anak?
108
Apakah ExpandableListView
ada cara untuk menyembunyikan indikator kelompok untuk kelompok tanpa anak?
Jawaban:
Coba ini >>>
untuk semua item
Dalam xml
sumber
The
android:groupIndicator
properti membutuhkan ditarik diaktifkan negara. Artinya, Anda dapat mengatur gambar yang berbeda untuk keadaan yang berbeda.Jika grup tidak memiliki anak, status terkait adalah 'state_empty'
Lihat tautan referensi ini:
ini dan ini
Sebab
state_empty
, Anda dapat mengatur gambar berbeda yang tidak membingungkan, atau, cukup gunakan warna transparan untuk tidak menampilkan apa-apa ...Tambahkan item ini di stateful drawable Anda bersama dengan item lain ....
Jadi, statelist Anda bisa seperti ini:
Jika Anda menggunakan ExpandableListActivity, Anda dapat menyetel indikator grup di onCreate sebagai berikut:
Saya telah menguji ini untuk bekerja.
sumber
Berdasarkan jawaban StrayPointer dan kode dari blog, Anda dapat lebih menyederhanakan kode tersebut:
Di xml Anda, tambahkan berikut ini ke ExpandableListView:
Kemudian di Adaptor Anda melakukan hal berikut:
Dengan menggunakan metode setImageResource, Anda menyelesaikan semuanya dengan satu baris. Anda tidak memerlukan tiga larik Integer di adaptor Anda. Anda juga tidak memerlukan pemilih XML untuk status diperluas dan diciutkan. Semua dilakukan melalui Java.
Plus, pendekatan ini juga menampilkan indikator yang benar ketika grup yang diperluas secara default yang tidak berfungsi dengan kode dari blog.
sumber
getGroupView()
metodeBaseExpandableListAdapter
penerapan Anda . Lihat contoh implementasi ini .ViewHolder
polanya.indicator
adalah nama variabel pemegang tampilan.Seperti yang disebutkan dalam jawaban berbeda, karena Android memperlakukan grup daftar yang tidak diperluas sebagai kosong, ikon tidak digambar meskipun grup tersebut memiliki turunan.
Tautan ini memecahkan masalah bagi saya: http://mylifewithandroid.blogspot.com/2011/06/hiding-group-indicator-for-empty-groups.html
Pada dasarnya Anda harus menyetel drawable default sebagai transparan, memindahkan drawable ke tampilan grup Anda sebagai ImageView dan mengalihkan gambar di adaptor Anda.
sumber
Dalam kode Anda, cukup gunakan xml khusus untuk daftar grup dan di situ letakkan ImageView untuk GroupIndicator .
Dan Tambahkan array di bawah ini di ExpandableListAdapter Anda
juga dalam metode ExpandableListAdapter menambahkan hal yang sama seperti di bawah ini
Referensi: http://mylifewithandroid.blogspot.in/2011/06/hiding-group-indicator-for-empty-groups.html
sumber
Dalam XML
Di
ExpandableListAdapter
->getGroupView
salin kode berikutsumber
ini bisa menjadi cara lain dari XML, set
android:groupIndicator="@null"
Tautan Referensi: https://stackoverflow.com/a/5853520/2624806
sumber
Sarankan solusi saya:
1) Hapus grup defaultIndikator:
2) di ExpandableAdapter:
sumber
Hanya ingin memperbaiki jawaban Mihir Trivedi. Anda bisa menempatkan ini dalam getGroupView () yang ada di dalam kelas MyExpandableListAdapter
... dan untuk tampilan tata letak, ini adalah tampilan group_items.xml saya
Harapan yang membantu ... ingatlah untuk memberikan suara positif
sumber
Gunakan ini, ini bekerja dengan sempurna untuk saya.
sumber
Sudahkah Anda mencoba mengubah
ExpandableListView
atributandroid:groupIndicator="@null"
?sumber
Sederhananya, Anda membuat tata letak xml baru dengan height = 0 untuk header grup tersembunyi. Misalnya, 'group_list_item_empty.xml'
Kemudian tata letak header grup normal Anda adalah 'your_group_list_item_file.xml'
Terakhir, Anda baru saja memperbarui metode getGroupView di Kelas Adaptor Anda:
PENTING : Tag root dari file tata letak (tersembunyi dan normal) harus berbeda (seperti contoh di atas, LinearLayout dan RelativeLayout)
sumber
convertView.setVisibility (View.GONE) harus melakukan triknya.
sumber