Android: ฉันจะลบรายการออกจาก gridview ได้อย่างไร โดยให้รายการที่เหลือสับเข้าที่

ความเป็นมา:
ฉันมีตาราง 36 ปุ่ม สมมติว่ามี 6 แถวและ 6 คอลัมน์ที่มีหมายเลข 1 ถึง 36 แสดงครั้งละ 2 แถวผ่าน GridView และอะแดปเตอร์แบบกำหนดเอง

ตารางแสดงผลได้ดี และการเลื่อนทั้งหมดทำงานได้อย่างถูกต้อง

คำถาม:
ฉันต้องการให้สามารถคลิกที่รายการ ให้ลบออกจากตาราง และรายการที่เหลือจะสับเข้าที่ ขณะนี้ฉันสามารถปิดการใช้งานรายการที่ถูกปิดใช้งาน โดยตั้งค่าการมองเห็นเป็นมองไม่เห็นหรือหายไป แต่สิ่งเหล่านี้จะไม่ลบออกจากจอแสดงผลเลย

ข้อเสนอแนะ?


person Noah    schedule 15.03.2011    source แหล่งที่มา


คำตอบ (2)


โดยเฉพาะอย่างยิ่ง คุณต้องลบอ็อบเจ็กต์ที่เกี่ยวข้องออกจากชุดข้อมูลของอะแด็ปเตอร์พื้นฐาน จากนั้นจึงเรียก adapter.notifyDataSetChanged() นี่จะไม่ให้ภาพเคลื่อนไหวแก่คุณหากนั่นเป็นส่วนหนึ่งของคำถามนี้

อาจเป็นเรื่องน่าสนใจที่จะลองใช้ tween แอนิเมชั่น สำหรับ รายการที่เป็นปัญหา จากนั้นจึงถอดออกจากอะแดปเตอร์ของคุณในตอนท้าย ฉันไม่เชี่ยวชาญเรื่องแอนิเมชั่น ดังนั้นฉันจึงไม่แน่ใจว่าสิ่งนี้จะทำงานได้ดีแค่ไหนใน AdapterView

person Matthew Willis    schedule 15.03.2011
comment
ฉันอาจจะลบหลายรายการพร้อมกัน ลองลากนิ้วไปบนบางรายการ ฉันจะทำให้เกิดปัญหาด้านประสิทธิภาพหรือไม่หากฉันโทร notifyDataSetChanged() หลายครั้ง หรือฉันควรลองแคชการเปลี่ยนแปลงและโทรเพียงครั้งเดียว - person Noah; 15.03.2011
comment
คุณควรทำการเปลี่ยนแปลงทั้งหมดแล้วแจ้งให้ทราบหากเป็นไปได้ ฉันไม่คิดว่ามันเป็นเรื่องใหญ่ เพราะ notifyDataSetChanged() จะไม่ทำให้ ListView ทำงานมากเกินไปในทันที - person Matthew Willis; 15.03.2011

คุณควรจะสามารถอัปเดตอะแดปเตอร์ได้ จากนั้นโทร notifyDataSetChanged เพื่อบังคับให้อัปเดตมุมมองกริด

person Cheryl Simon    schedule 15.03.2011