ในโฟลว์ของผู้ใช้บางรายการ แอปพลิเคชันของคุณต้องย้ายโฟกัสอย่างชัดเจน ไปยังคอมโพเนนต์ที่เฉพาะเจาะจง ตัวอย่างเช่น เมื่อผู้ใช้คลิกปุ่ม "ค้นหา" คุณอาจต้องการโฟกัสที่ช่องป้อนข้อมูลการค้นหาโดยอัตโนมัติ
ใช้ FocusRequester
หากต้องการขอโฟกัสอย่างชัดเจน ให้ทำดังนี้
- สร้างและจดจำอินสแตนซ์
FocusRequesterโดยทำดังนี้val focusRequester = remember { FocusRequester() } - แนบ
FocusRequesterไปยัง Composable เป้าหมายโดยใช้ตัวแก้ไขfocusRequester - เรียกใช้
requestFocus()ภายใน Callback ของเหตุการณ์ (เช่นonClick) หรือขอบเขตของ โครูทีน
val focusRequester = remember { FocusRequester() } var text by remember { mutableStateOf("") } TextField( value = text, onValueChange = { text = it }, modifier = Modifier.focusRequester(focusRequester) )
val focusRequester = remember { FocusRequester() } var text by remember { mutableStateOf("") } TextField( value = text, onValueChange = { text = it }, modifier = Modifier.focusRequester(focusRequester) ) Button(onClick = { focusRequester.requestFocus() }) { Text("Request focus on TextField") }
ตั้งค่าโฟกัสหน้าจอเริ่มต้น
หากต้องการโฟกัสเริ่มต้นที่คอมโพเนนต์หนึ่งๆ เมื่อหน้าจอแสดงขึ้นเป็นครั้งแรก ให้
ทริกเกอร์ requestFocus() ภายใน LaunchedEffect(Unit) ดังนี้
LaunchedEffect(Unit) {
focusRequester.requestFocus()
}
เมื่อไปยังส่วนต่างๆ ระหว่างคอนเทนเนอร์หรือกลับจากหน้าจออื่น
คุณยังแนบ focusRestorer() ไปยังคอนเทนเนอร์หลัก
เพื่อกลับไปโฟกัสที่องค์ประกอบย่อยที่โฟกัสล่าสุดโดยอัตโนมัติได้ด้วย
ดูข้อมูลเพิ่มเติมได้ที่คู่มือกู้คืนโฟกัส
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- เป้าหมายโฟกัส
- โฟกัสเป้าหมายกลุ่ม
- คืนค่าโฟกัส
- ย้ายและล้างโฟกัส