Em modos de interação especializados (como uma tela de desenho incorporada, uma superfície de controle de jogo ou uma caixa de diálogo de entrada modal), talvez seja necessário bloquear temporariamente o foco em um único componente e impedir que as teclas Tab ou direcionais naveguem para fora.
Capturar foco
Para capturar o foco, invoque captureFocus() em um FocusRequester:
val focusRequester = remember { FocusRequester() } Box( modifier = Modifier .focusRequester(focusRequester) .focusable() .onFocusChanged { focusState -> if (focusState.isFocused) { focusRequester.captureFocus() } } )
Enquanto o foco está capturado, as teclas padrão de navegação por foco (como Tab) não movem o foco para componentes vizinhos.
Soltar o foco
Para sair do estado capturado e restaurar a navegação normal por foco na interface,
chame freeFocus():
IconButton( onClick = { focusRequester.freeFocus() } ) { Icon(Icons.Default.Close, contentDescription = "Exit focus lock") }
Recomendados para você
- Observação: o texto do link aparece quando o JavaScript está desativado.
- Segmentações por foco
- Agrupar alvos de foco
- Solicitar o foco de maneira programática