Bazı kullanıcı akışlarında uygulamanızın odağı açıkça belirli bir bileşene taşıması gerekir. Örneğin, bir kullanıcı "Ara" düğmesini tıkladığında odağı otomatik olarak arama giriş alanına yerleştirmek isteyebilirsiniz.
FocusRequester'ı kullanma
Odaklanmayı açıkça istemek için:
FocusRequesterörneği oluşturup hatırlayın:val focusRequester = remember { FocusRequester() }.focusRequesterdeğiştiricisini kullanarakFocusRequesteröğesini hedef composable'a ekleyin.- Bir etkinlik geri çağırma işlevi (ör.
onClick) veya bir coroutine kapsamı içinderequestFocus()işlevini çağırın.
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") }
İlk ekran odağını ayarlama
Bir ekran ilk kez göründüğünde belirli bir bileşene ilk odağı yerleştirmek için LaunchedEffect(Unit) içinde requestFocus() tetikleyin:
LaunchedEffect(Unit) {
focusRequester.requestFocus()
}
Kapsayıcılar arasında gezinirken veya başka bir ekrandan dönerken, odağı otomatik olarak son odaklanılan alt öğeye döndürmek için focusRestorer() öğesini üst kapsayıcılara da ekleyebilirsiniz.
Daha fazla bilgi için Odaklanmayı geri yükleme kılavuzuna bakın.
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir.
- Odak hedefleri
- Grup odak hedefleri
- Odağı geri yükleme
- Odağı taşıma ve temizleme