ในโหมดการโต้ตอบเฉพาะทาง (เช่น Canvas การวาดภาพแบบฝัง พื้นผิวของเกมคอนโทรลเลอร์ หรือกล่องโต้ตอบการป้อนข้อมูลแบบโมดอล) แอปอาจต้องล็อกโฟกัสชั่วคราวไปยังคอมโพเนนต์เดียวและป้องกันไม่ให้คีย์ Tab หรือคีย์ทิศทางนำทางออกไป
โฟกัสการจับภาพ
หากต้องการโฟกัส ให้เรียกใช้ captureFocus() ใน FocusRequester โดยทำดังนี้
val focusRequester = remember { FocusRequester() } Box( modifier = Modifier .focusRequester(focusRequester) .focusable() .onFocusChanged { focusState -> if (focusState.isFocused) { focusRequester.captureFocus() } } )
ขณะที่โฟกัสถูกจับ แป้นนำทางโฟกัสมาตรฐาน (เช่น Tab) จะไม่ย้ายโฟกัสไปยังคอมโพเนนต์ที่อยู่ใกล้เคียง
โฟกัสการเปิดตัว
หากต้องการออกจากสถานะที่จับภาพไว้และกู้คืนการไปยังส่วนต่างๆ ของโฟกัสปกติใน UI ให้เรียกใช้ freeFocus()
IconButton( onClick = { focusRequester.freeFocus() } ) { Icon(Icons.Default.Close, contentDescription = "Exit focus lock") }
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- เป้าหมายโฟกัส
- โฟกัสเป้าหมายกลุ่ม
- ขอโฟกัสโดยใช้โปรแกรม