Gelagat Kaedah getView() Penyesuai ListView Tersuai
Soalan:
Mengapa getView () kaedah dalam penyesuai senarai tersuai dipanggil beberapa kali dalam susunan yang nampaknya rawak, walaupun sebelum apa-apa tatal mempunyai telah berlaku?
Jawapan:
Tertib kaedah getView() dan kekerapan panggilan tidak dijamin. Apabila ListView dibentangkan, ia mungkin mengukur beberapa kanak-kanak untuk menentukan saiznya. Ini boleh mengakibatkan penciptaan dan penghantaran objek "convertView" ke getView() sebelum sebarang penatalan berlaku.
Dalam kes khusus ini, menggunakan android:layout_height="wrap_content" untuk ListView memaksanya mengukur berbilang kanak-kanak pada masa susun atur. Ini secara amnya tidak digalakkan dan dianggap sebagai penggunaan sumber yang kurang cekap.
Memahami Gelagat Pengukuran Kanak-kanak ListView:
ListView mengukur bilangan kanak-kanak yang tetap (bergantung pada peranti dan versi Android) pada masa reka letak. Ini dilakukan untuk menentukan saiz awalnya. Bilangan kanak-kanak yang diukur kemudiannya digunakan untuk pengurusan cache dan kitar semula.
Akibat daripada Panggilan getView() yang Tidak Konsisten:
Tertib dan kekerapan panggilan getView() yang tidak konsisten boleh membawa kepada isu prestasi dan artifak visual jika tidak dikendalikan dengan betul. Pelaksanaan kaedah getView() penyesuai yang betul adalah penting untuk penatalan yang cekap dan pengalaman pengguna yang konsisten.
Amalan Terbaik:
Untuk mengurangkan isu ini, adalah disyorkan untuk :
Atas ialah kandungan terperinci Mengapa Kaedah `getView()` Penyesuai ListView Tersuai Saya Dipanggil Berbilang Kali Sebelum Menatal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!