คอมโพเนนต์ Glimmer ทั้งหมดของ Jetpack Compose ออกแบบมาให้ทำงานร่วมกับวิธีการป้อนข้อมูลมาตรฐาน เช่น การแตะหรือปัดบนทัชแพดของแว่นตา AI ขณะเดียวกันก็ตอบสนองต่อคำสั่งป้อนข้อมูลระดับล่างที่เฉพาะเจาะจงกับฮาร์ดแวร์ของแว่นตา AI คอมโพเนนต์ Jetpack Compose Glimmer จะจัดการเหตุการณ์อินพุตที่จำเป็นโดยอัตโนมัติ
สำหรับคอมโพเนนต์ที่กำหนดเอง คุณสามารถใช้ Compose API ที่มีอยู่ เช่น
Modifier.draggable หรือ Modifier.scrollable เพื่อใช้ลักษณะการโต้ตอบที่เฉพาะเจาะจงได้
ในแว่นตา AI ที่มีจอแสดงผล การป้อนข้อมูลด้วยเคอร์เซอร์อาจส่งผลต่อโฟกัสได้ดังนี้
- แตะ: การโต้ตอบโดยตรงเพื่อเปิดใช้งานองค์ประกอบ โฟกัสจะย้ายไปยัง องค์ประกอบเมื่อผู้ใช้โต้ตอบกับองค์ประกอบนั้น
- ปัด: ใช้สำหรับการนำทางและการเลื่อน ท่าทางการปัดที่ไม่ได้จัดการ จะเปลี่ยนเป็นการเคลื่อนไหวโฟกัสโดยอัตโนมัติ ซึ่งช่วยให้การนำทาง UI เป็นไปอย่างราบรื่น โดยไม่ต้องป้อนข้อมูลตัวชี้โดยตรง
ลักษณะการทำงานและลำดับการนำทาง
การเคลื่อนไหวของโฟกัสและการเปลี่ยนลำดับเมื่อผู้ใช้ไปยังส่วนต่างๆ ของแอป
การเคลื่อนไหวของโฟกัส
ในคอนเทนเนอร์ที่เลื่อนได้ โฟกัสจะเคลื่อนที่อย่างต่อเนื่องเมื่อปัดบนทัชแพด สำหรับองค์ประกอบที่ไม่ต่อเนื่อง เช่น แถวของปุ่ม การปัดแต่ละครั้งจะย้ายโฟกัสไปยังองค์ประกอบทีละรายการ
ลำดับโฟกัส
Jetpack Compose Glimmer ใช้การค้นหาโฟกัสแบบมิติเดียวเช่นเดียวกับใน Jetpack Compose ดูข้อมูลเพิ่มเติมเกี่ยวกับลำดับการส่งผ่านโฟกัสได้ที่เปลี่ยนลำดับการส่งผ่านโฟกัส
หากต้องการเปลี่ยนรายการที่โฟกัสในตอนแรก คุณสามารถเพิ่มModifier.focusGroup()ระดับบนสุดและระบุ onEnter ที่กำหนดเองได้
focusProperty
Modifier.focusProperties {
onEnter = {
initialFocus.requestFocus()
cancelFocusChange()
}
}
.focusGroup()
คอนเทนเนอร์ที่เลื่อนได้
คอนเทนเนอร์ที่เลื่อนได้ เช่น รายการ ควรเป็นคอมโพเนนต์หลักเพียงอย่างเดียวบนหน้าจอเพื่อมอบประสบการณ์การใช้งานที่ดีที่สุดให้แก่ผู้ใช้ หลีกเลี่ยงการวางรายการที่เลื่อนได้โดยตรงเหนือ หรือใต้องค์ประกอบแบบอินเทอร์แอกทีฟอื่นๆ เช่น ปุ่ม เพื่อป้องกันความสับสนในการนำทาง และส่งเสริมการเคลื่อนไหวโฟกัสที่ราบรื่นและคาดการณ์ได้
สถานะโฟกัสเริ่มต้น
Glimmer ของ Jetpack Compose จะใช้สถานะโฟกัสเริ่มต้นในคอมโพเนนต์ที่โต้ตอบได้ ซึ่งรวมถึงพื้นผิว การ์ด และรายการในรายการ เพื่อส่งเสริมให้เกิดความคิดเห็นที่สอดคล้องกันและ ชัดเจนในระหว่างการโต้ตอบของผู้ใช้
ค่าเริ่มต้น: สีพื้นหลังของปุ่มได้มาจาก
GlimmerTheme.colors.surfaceเนื้อหาหลักจะคำนวณสีเนื้อหาของพื้นผิวนั้น และไอคอนจะเป็นGlimmerTheme.colors.primaryโฟกัส: เพิ่มความกว้างของเส้นขอบเพื่อสื่อถึงโฟกัส
โฟกัส + กด: ระบบจะตั้งค่าพื้นหลังเป็น
GlimmerTheme.colors.surfaceที่ความทึบแสงเต็มรูปแบบเพื่อสื่อสารสถานะที่เลือก