GridView VS GridLayout ในแอพ Android


212

ฉันต้องใช้กริดเพื่อใช้งาน Photo Browser ใน Android ดังนั้นผมอยากจะทราบความแตกต่างระหว่าง GridView และ GridLayout

เพื่อที่ฉันจะได้เลือกคนที่ใช่

ขณะนี้ฉันกำลังใช้ GridView เพื่อแสดงภาพแบบไดนามิก

คำตอบ:


264

GridViewเป็น ViewGroup ที่รายการที่แสดงในสองมิติตารางการเลื่อน รายการในตารางมาจาก ListAdapter ที่เกี่ยวข้องกับมุมมองนี้

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

ในขณะที่GridLayoutเป็นเลย์เอาต์ที่วางลูกไว้ในตารางสี่เหลี่ยม

มันได้รับการแนะนำใน API ระดับ 14 และเพิ่งได้รับการสนับสนุนในไลบรารีการสนับสนุน วัตถุประสงค์หลักคือเพื่อแก้ปัญหาการจัดตำแหน่งและปัญหาประสิทธิภาพการทำงานในรูปแบบอื่น ๆ ลองดูบทแนะนำนี้หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ GridLayout


15
GridLayout เป็น ViewGroup
Dzmitry Lazerka

22
ฉันไม่เคยบอกว่ามันไม่ใช่ ฉันแค่เน้นความจริงที่ว่ามันเป็นเลย์เอาต์
เบนิโต้ Bertoli

16
@laki สถานการณ์สมมติเดียวคือหากคุณต้องการโหลดรูปภาพจำนวนมากในรูปแบบ Grid แบบที่ต้องการ การใช้ GridView จะโหลดเฉพาะในหน่วยความจำมุมมองที่ปรากฏบนหน้าจอ ในกรณีที่คุณใช้ GridLayout คุณจะต้องโหลดรูปภาพทั้งหมดที่จะแสดงเมื่อใดก็ได้ที่ทำให้เกิดข้อผิดพลาด outofmemory ในอุปกรณ์ส่วนใหญ่
BigBen3216

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

58
@laki Scenario one: วาดเครื่องคิดเลข, GridLayout สถานการณ์ที่สอง: วาดแกลเลอรี่, GridView
Mario Velasco
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.