Quando os usuários navegam em uma interface do Compose com um teclado de hardware, botão direcional ou controle giratório, os campos de texto participam da navegação de foco com outros destinos de foco.
Por padrão, o foco não fica preso em campos de texto. Não é necessário adicionar manipuladores de eventos de tecla personalizados (onKeyEvent ou onPreviewKeyEvent) para permitir que os usuários saiam de um campo de texto. Os usuários podem sair usando Shift+Tab ou navegando além
dos limites do texto com as teclas de direção.
O KeyboardOptions pode ser usado para fornecer uma ação intuitiva do teclado de software
que se coordena com a navegação do teclado de hardware.
ImeAction.Next move o foco para o próximo alvo, por exemplo.
Transição de foco unidimensional
Na transição de foco unidimensional,
o comportamento da tecla Tab depende do
lineLimits configurado no campo de texto:
- Campos de texto de linha única (
TextFieldLineLimits.SingleLine): pressionar a tecla Tab move o foco para o próximo alvo de foco na interface. - Campos de texto de várias linhas (
TextFieldLineLimits.MultiLine()ou padrão): pressionar a tecla Tab insere um caractere de tabulação (\t) no buffer de texto em vez de mover o foco. - Navegação reversa (Shift+Tab): pressionar Shift+Tab move o foco incondicionalmente para trás, para o destino de foco anterior, em campos de texto de linha única e de várias linhas.
// Single-line text field: Tab advances focus to the next focus target BasicTextField( state = singleLineState, lineLimits = TextFieldLineLimits.SingleLine, modifier = Modifier.fillMaxWidth() ) // Multi-line text field: Tab inserts '\t'; Shift + Tab moves to previous target BasicTextField( state = multiLineState, lineLimits = TextFieldLineLimits.MultiLine(), modifier = Modifier.fillMaxWidth() )
Transição de foco bidimensional
Ao usar as teclas de seta (ou um botão direcional), as teclas direcionais movem primeiro o cursor de texto no campo de texto:
- Navegação vertical (para cima / para baixo):
pressionar a tecla
Downmove o cursor de texto para baixo, linha por linha. Quando o cursor de texto chega à última linha, pressionar a tecla Para baixo novamente transfere o foco para o alvo de foco adjacente abaixo do campo de texto. Pressionar a tecla Para cima na primeira linha move o foco para o alvo de foco anterior. - Navegação horizontal (esquerda / direita / início / fim): pressionar as teclas de seta horizontal move o cursor de texto pelos caracteres. Quando o cursor de texto chega ao início ou ao fim do buffer de texto, pressionar a tecla direcional novamente transfere o foco para o alvo de foco adjacente nessa direção.
Campos de texto no Android TV
No Android TV, usando controles de botão direcional sem um teclado físico:
- Mover o foco para um campo de texto mostra automaticamente o teclado de software na tela.
- O usuário navega pelas teclas do teclado de software usando o botão direcional.
- Pressionar o botão Voltar dispensa o teclado de software, mas mantém o foco no campo de texto.
- Depois que o teclado de software é dispensado, pressionar as teclas direcionais do botão direcional move o foco para os destinos de foco vizinhos na tela.
- Pressionar o botão Voltar uma segunda vez aciona a navegação de retorno padrão do sistema.
Recomendados para você
- Observação: o texto do link aparece quando o JavaScript está desativado.
- Metas de foco
- Ordem de apresentação do foco
- Agrupar alvos de foco
- Testar a navegação de foco