ส่วนลำดับการส่งผ่านโฟกัสเริ่มต้นอธิบายวิธีการเขียน
จะเพิ่มพฤติกรรมการส่งผ่านโฟกัสไปยังองค์ประกอบโดยอัตโนมัติสำหรับทั้ง
การไปยังส่วนต่างๆ แบบมิติเดียว (แป้น tab
) และแบบ 2 มิติ (แป้นลูกศร) ในบางส่วน
คุณอาจจำเป็นต้องลบล้างการทำงานเริ่มต้นนี้และระบุให้เจาะจงมากขึ้น
เกี่ยวกับลำดับการส่งผ่านที่จำเป็น
ลบล้างลำดับการส่งผ่านแบบหนึ่งมิติ
ในการเปลี่ยนลำดับการส่งผ่านโฟกัสเริ่มต้นสำหรับการนำทางแบบหนึ่งมิติ คุณสามารถ สร้างชุดการอ้างอิง 1 ชุดสำหรับ Composable ที่โฟกัสได้แต่ละรายการ:
val (first, second, third, fourth) = remember { FocusRequester.createRefs() }
จากนั้นใช้ตัวแก้ไข focusRequester
เพื่อเชื่อมโยงแต่ละรายการกับ
Composable:
Column { Row { TextButton({}, Modifier.focusRequester(first)) { Text("First field") } TextButton({}, Modifier.focusRequester(third)) { Text("Third field") } } Row { TextButton({}, Modifier.focusRequester(second)) { Text("Second field") } TextButton({}, Modifier.focusRequester(fourth)) { Text("Fourth field") } } }
ตอนนี้คุณสามารถใช้ตัวแก้ไข focusProperties
เพื่อระบุลำดับการส่งผ่านที่กำหนดเองได้แล้ว ดังนี้
Column { Row { TextButton( {}, Modifier .focusRequester(first) .focusProperties { next = second } ) { Text("First field") } TextButton( {}, Modifier .focusRequester(third) .focusProperties { next = fourth } ) { Text("Third field") } } Row { TextButton( {}, Modifier .focusRequester(second) .focusProperties { next = third } ) { Text("Second field") } TextButton( {}, Modifier .focusRequester(fourth) .focusProperties { next = first } ) { Text("Fourth field") } } }
ลบล้างลำดับการส่งผ่านแบบ 2 มิติ
สามารถเพิ่มการควบคุมแบบละเอียดสำหรับลำดับการส่งผ่านโฟกัสได้ด้วย
สำหรับการนำทางแบบ 2 มิติด้วยปุ่มลูกศร คุณสามารถดำเนินการต่อไปนี้สำหรับแต่ละองค์ประกอบ
ลบล้างปลายทางการนำทางเริ่มต้นสำหรับแต่ละเส้นทางด้วยการเพิ่ม
ตัวแก้ไข focusProperties
และระบุรายการที่ระบบจะแสดง
ขาลง หรือทิศทางอื่นๆ:
TextButton( onClick = {}, modifier = Modifier .focusRequester(fourth) .focusProperties { down = third right = second } ) {}
เทคนิคนี้ไม่เพียงใช้ลูกศรบนแป้นพิมพ์มีประสิทธิภาพเท่านั้น แต่ยังใช้ได้กับ D-Pads และติดบนตัวควบคุมแบบใช้สายและไร้สาย
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- เปลี่ยนลักษณะการทำงานของการโฟกัส
- โฟกัสในการเขียน