ดูเหมือนกับหน้าจอติดต่อของ Android

ฉันกำลังพัฒนาแอปพลิเคชันที่มีองค์ประกอบจำนวนมากที่ต้องเรียงลำดับตามตัวอักษร และฉันอยากให้มันมีรูปลักษณ์และความรู้สึกเหมือนกับรายชื่อผู้ติดต่อของ Android นั่นคือ

[Letter]
<contact>
<contact>
[Letter]
<contact>
<contact>
<contact>

ฯลฯ

วิธีใดคือวิธีที่ดีที่สุดเพื่อให้ได้เลย์เอาต์เดียวกันนี้ ฉันเคยเห็นบทช่วยสอนหลายอย่างเกี่ยวกับรายการที่เลื่อนได้ แต่นี่แตกต่างออกไปเล็กน้อย ฉันได้ดูซอร์สโค้ดของ Android มาบ้างแล้ว แต่ถ้าใครมีคำตอบ มันจะช่วยฉันประหยัดเวลาได้มาก

ขอบคุณล่วงหน้า.


person Maragues    schedule 21.04.2010    source แหล่งที่มา


คำตอบ (1)


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

โดยสรุป คุณต้องสร้าง ListAdapter ที่จัดการทั้งที่อยู่ติดต่อและส่วนหัวของคุณ คุณจะจบลงด้วยการใช้มุมมองที่แตกต่างกันสำหรับสิ่งเหล่านั้น ซึ่งเป็นไปได้มากที่สุด และมีวิธีการที่คุณแทนที่บน ListAdapter ไปยัง Android แต่ละตัวเกี่ยวกับสิ่งเหล่านั้น คุณอาจเลือกที่จะบอกว่าส่วนหัวไม่ได้ "เปิดใช้งาน" ซึ่งหมายความว่าส่วนหัวเหล่านั้นจะไม่ตอบสนองต่อเหตุการณ์การเลือกหรือการคลิก

person CommonsWare    schedule 21.04.2010
comment
ขอบคุณมาก. คุณทราบถึงการปรับปรุงประสิทธิภาพที่สำคัญที่สามารถทำได้กับโค้ดของคุณหรือไม่? มันคล้ายกับอันอื่นที่ฉันกำลังดูมาก: jsharkey.org/blog/2008/08/18/ ฉันกลัวที่จะใช้มันเพราะมันได้รับการพัฒนาเมื่อ 0.9 ออกมาและฉันกลัวว่าการใช้งาน/ประสิทธิภาพจะเปลี่ยนไปมาก แต่ คุณแก่กว่าเกือบหนึ่งปีและปฏิบัติตามแนวคิดเดียวกัน PS: ฉันยังลงคะแนนไม่ได้ :( - person Maragues; 21.04.2010
comment
คุณทราบถึงการปรับปรุงประสิทธิภาพที่สำคัญที่สามารถทำได้กับโค้ดของคุณหรือไม่? ฉันไม่ทราบว่ามีปัญหาด้านประสิทธิภาพ มันใหม่กว่าของมิสเตอร์ชาร์กี้ แต่เขาอาจจะยังใช้งานได้อยู่ โปรดทราบว่าเขาเป็น GPLv3 ซึ่งอาจเป็นหรือไม่ใช่ใบอนุญาตที่เหมาะสมสำหรับโครงการของคุณ ของฉันคือ Apache 2.0 ที่ได้รับอนุญาต - person CommonsWare; 21.04.2010
comment
ขออภัยหากฉันแสดงตัวเองผิด ฉันไม่ได้วิจารณ์งานของคุณ แค่สงสัยว่าคุณรู้ถึงการปรับปรุงที่เป็นไปได้ แต่ยังไม่ได้พัฒนา ขอขอบคุณอีกครั้งสำหรับคำตอบและคำแนะนำเกี่ยวกับความแตกต่างของใบอนุญาต ฉันจะตรวจสอบเงื่อนไข - person Maragues; 21.04.2010
comment
แค่สงสัยว่าคุณรู้ถึงการปรับปรุงที่เป็นไปได้แต่ยังไม่ได้พัฒนาเลย อแดปเตอร์ก็ไม่มีอะไรมาก ฉันเห็นรูปแบบบางอย่างใน MergeAdapter ที่อาจให้ประสิทธิภาพที่ดีขึ้นเล็กน้อยผ่านการแคชการคำนวณบางอย่าง โดยไม่สามารถอัปเดตเนื้อหาแบบไดนามิกได้ (เช่น การเรียก requery() บนอะแดปเตอร์ลูกตัวใดตัวหนึ่ง) - person CommonsWare; 21.04.2010