Android: Bagaimana cara menghapus item dari tampilan kisi, membuat item yang tersisa diacak ke tempatnya

LATAR BELAKANG:
Saya memiliki kisi 36 tombol, katakanlah 6 baris & 6 kolom bernomor 1 hingga 36, ​​ditampilkan 2 baris sekaligus melalui GridView dan Adaptor khusus

Grid ditampilkan dengan baik, dan semua pengguliran berfungsi dengan baik.

PERTANYAAN:
Saya ingin dapat mengeklik suatu item, menghapusnya dari kisi, dan item lainnya diacak ke tempatnya. Saat ini saya dapat menonaktifkan item yang dinonaktifkan, mengatur visibilitasnya ke INVISIBLE atau GONE, namun tidak ada yang benar-benar menghapusnya dari tampilan.

Saran?


person Noah    schedule 15.03.2011    source sumber


Jawaban (2)


Secara khusus, Anda perlu menghapus objek terkait dari kumpulan data adaptor yang mendasarinya, lalu memanggil adapter.notifyDataSetChanged(). Namun, ini tidak akan memberi Anda animasi, jika itu adalah bagian dari pertanyaan ini.

Mungkin menarik untuk mencoba tween animasi untuk item yang dimaksud dan akhirnya menghapusnya dari adaptor Anda di akhir. Saya tidak berpengalaman dalam bidang animasi, jadi saya tidak yakin seberapa baik ini akan bekerja dalam AdapterView.

person Matthew Willis    schedule 15.03.2011
comment
Saya mungkin menghapus beberapa item sekaligus, bayangkan menyeret jari Anda ke beberapa item. Apakah saya akan menyebabkan masalah kinerja jika saya memanggil notifyDataSetChanged() beberapa kali, atau haruskah saya mencoba dan menyimpan perubahan dalam cache dan hanya menelepon sekali? - person Noah; 15.03.2011
comment
Anda mungkin harus melakukan semua perubahan dan kemudian memberi tahu, jika memungkinkan. Menurut saya ini bukan masalah besar, karena notifyDataSetChanged() tidak akan menyebabkan ListView melakukan banyak pekerjaan dengan segera - person Matthew Willis; 15.03.2011

Anda seharusnya dapat memperbarui adaptor, lalu memanggil notifyDataSetChanged untuk memaksa tampilan petak diperbarui.

person Cheryl Simon    schedule 15.03.2011