GRid

Grid เป็น API ของ Jetpack Compose ที่ช่วยให้คุณติดตั้งใช้งานเลย์เอาต์แบบ 2 มิติได้อย่างยืดหยุ่น API นี้ช่วยให้คุณแสดงรายการในเลย์เอาต์แบบหลายคอลัมน์ หรือหลายแถวที่ปรับให้เข้ากับขนาดคอนเทนเนอร์ที่มีอยู่ได้

เลย์เอาต์แบบ 2 มิติที่ยืดหยุ่นและปรับเปลี่ยนได้ด้วยกริด
รูปที่ 1 เลย์เอาต์แบบ 2 มิติที่ยืดหยุ่นและปรับเปลี่ยนได้พร้อม Grid

Grid แตกต่างจาก Composable ที่คล้ายกันอย่างไร

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

นอกจากนี้ คุณยังใช้เลย์เอาต์ 2 มิติได้ด้วย โดยการรวม Composable หลายรายการของ Row และ Column อย่างไรก็ตาม วิธีนี้มีข้อเสียบางประการ เช่น ลำดับชั้นที่ซับซ้อนและความยากในการปรับตัว

ตารางต่อไปนี้แสดงภาพรวม ของเลย์เอาต์ที่เหมาะกับแต่ละ API

ส่วนประกอบ วัตถุประสงค์
LazyVerticalGrid, LazyStaggeredGrid, LazyHorizontalGrid การแสดงภาพชุดข้อมูลขนาดใหญ่ที่เป็นเนื้อหาเดียวกันซึ่งต้องใช้การโหลดแบบ Lazy Loading
Row, Column, FlexBox เลย์เอาต์แบบมิติเดียว
Grid เลย์เอาต์แบบ 2 มิติ

คำศัพท์

ทำความคุ้นเคยกับคำศัพท์ต่อไปนี้ เพื่อทำความเข้าใจวิธีการทำงานของ Grid

เส้นตารางกริด

ตารางประกอบด้วยเส้นที่วิ่งในแนวนอนและแนวตั้ง หากตารางมี 3 แถว ก็จะมีเส้นแนวนอน 4 เส้น รวมถึงเส้นที่อยู่หลังแถวสุดท้าย ในรูปภาพต่อไปนี้ เส้นประแต่ละเส้นแสดงถึงเส้นตาราง

ตารางประกอบด้วยเส้นแนวนอน 4 เส้นและเส้นแนวตั้ง 3 เส้น
รูปที่ 2 ตารางประกอบด้วยเส้นแนวนอน 4 เส้นและเส้นแนวตั้ง 3 เส้น

แทร็กตารางกริด

แทร็กกริดคือพื้นที่ระหว่างเส้นกริด 2 เส้น แทร็กแถวอยู่ระหว่างเส้นแนวนอน 2 เส้น และแทร็กคอลัมน์อยู่ระหว่างเส้นแนวตั้ง 2 เส้น หากต้องการกำหนดขนาดของแทร็กเหล่านี้ ให้กำหนดขนาดเมื่อสร้างตารางกริด

แทร็กตารางกริดสำหรับแถวแรก
รูปที่ 3 แทร็กตารางกริดสำหรับแถวแรก

เส้นตาราง

เซลล์กริดคือจุดตัดของแทร็กแถวและคอลัมน์

เซลล์ตารางกริดที่เป็นจุดตัดของแถวที่ 2 และคอลัมน์ที่ 2
รูปที่ 4 เซลล์ตารางกริดที่เป็นจุดตัดของแถวที่ 2 และคอลัมน์ที่ 2

พื้นที่ตารางกริด

พื้นที่ตารางกริดประกอบด้วยเซลล์ตารางกริดหลายเซลล์ คุณกำหนดพื้นที่ตารางกริดได้โดยทำให้รายการขยายหลายแทร็ก

พื้นที่ตารางกริดที่ประกอบด้วยเซลล์ตารางกริด 4 เซลล์
รูปที่ 5 พื้นที่ตารางกริดที่ประกอบด้วยเซลล์ตารางกริด 4 เซลล์

ช่องว่างของตารางกริด

ช่องว่างของกริดคือช่องว่างระหว่างแทร็กกริด คุณวางองค์ประกอบ UI ในช่องว่างไม่ได้ แต่สามารถขยายองค์ประกอบ UI ให้ครอบคลุมช่องว่างได้

ช่องว่างของตารางกริดระหว่างคอลัมน์แรกกับคอลัมน์ที่สอง
รูปที่ 6 ช่องว่างของตารางกริดระหว่างคอลัมน์แรกกับคอลัมน์ที่สอง