FocusManager ช่วยให้คุณย้ายโฟกัสตามทิศทางหรือล้างโฟกัสทั้งหมดได้
ใช้ FocusRequester สำหรับการกำหนดเป้าหมายคอมโพเนนต์โดยตรง (ดูขอโฟกัสโดยอัตโนมัติ)
การเคลื่อนไหวโฟกัสแบบระบุทิศทางด้วย FocusManager
วิธีย้ายโฟกัสแบบเป็นโปรแกรมในทิศทางที่สัมพันธ์กัน
- รับอินสแตนซ์
FocusManagerโดยใช้LocalFocusManager.current - โทร
moveFocus()ที่มีค่าFocusDirection(Next,Previous,Up,Down,Left,Right,EnterหรือExit)
val focusManager = LocalFocusManager.current Button( onClick = { focusManager.moveFocus(FocusDirection.Next) } ) { Text("Next Field") }
โฟกัสที่ชัดเจน
หากต้องการนำโฟกัสออกจากองค์ประกอบใดก็ตามที่กำลังมีโฟกัสอยู่
(เช่น เมื่อผู้ใช้กดแป้น Esc)
ให้เรียกใช้ clearFocus() ดังนี้
val focusManager = LocalFocusManager.current Box( modifier = Modifier.onPreviewKeyEvent { keyEvent -> if (keyEvent.key == Key.Escape && keyEvent.type == KeyEventType.KeyUp) { focusManager.clearFocus() true } else { false } } )
ฟังก์ชัน clearFocus() รับพารามิเตอร์ force: Boolean = false
ที่ไม่บังคับ
force = false(ค่าเริ่มต้น): จะไม่ล้างโฟกัสและจะคงโฟกัสไว้ หากคอมโพเนนต์ที่ใช้งานอยู่จับโฟกัสforce = true: ล้างโฟกัสโดยไม่มีเงื่อนไขแม้ว่าคอมโพเนนต์จะจับภาพโฟกัสไว้แล้วก็ตาม
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- เป้าหมายโฟกัส
- ลำดับการส่งผ่านโฟกัส
- ขอโฟกัสโดยใช้โปรแกรม