Quando os usuários interagem com seu app, eles geralmente usam mecanismos de entrada sem toque:
- Ambientes de computador: os usuários navegam e inserem dados com teclados de hardware e trackpads físicos.
- Android TV: os usuários navegam pela interface usando o botão direcional.
- Automotivo: motoristas e passageiros interagem usando controles giratórios.
- Dispositivos dobráveis e tablets: os usuários conectam capas de teclado e acessórios de entrada externos.
Em todos esses cenários, o app precisa rastrear qual elemento interativo está ativo na tela. Esse estado ativo é chamado de foco.
Principais fatores para uma navegação intuitiva pelo teclado
Para oferecer uma ótima experiência do usuário em telas grandes e dispositivos sem toque, crie seu app com os seguintes princípios:
- Foco inicial lógico: coloque o foco inicial no elemento com que os usuários têm mais probabilidade de interagir ao entrar em uma tela.
- Ordem de navegação consistente: ofereça travessia de foco unidimensional (Tab) e bidimensional (teclas de seta ou D-pad) previsível.
- Foco persistente: restaure o foco sem problemas após interrupções, dispensas de caixa de diálogo ou mudanças de configuração.
- Estado de foco claro: mostre indicadores visuais acessíveis e em destaque (como anéis ou ondulações de foco) que indicam qual elemento está em foco.
- Rolagem intuitiva: garanta que o elemento em foco e o contexto ao redor rolem suavemente para a janela de visualização visível.
Guias de foco
Confira os guias a seguir para saber como gerenciar e personalizar o foco no Compose:
- Alvos de foco: aprenda como os componentes interativos se tornam alvos de foco e como tornar focalizáveis elementos combináveis personalizados.
- Ordem de apresentação do foco: entenda a ordem de aparência 1D e a navegação espacial 2D, além de como personalizar os caminhos de apresentação.
- Foco em campos de texto: saiba como os campos de texto de uma e várias linhas processam as teclas Tab e de seta, e como funciona a interação com o IME da TV.
- Agrupar alvos de foco: agrupe componentes com
focusGroupe intercepte o redirecionamento de entrada ou saída. - Restaurar o foco: restaure o foco em filhos ativos anteriormente em containers, processe componentes de navegação e gerencie o foco nas transições de tela.
- Indicar estado de foco: aplique dicas visuais e indicação personalizada para destacar componentes em foco.
- Reagir ao foco: observe as mudanças de foco e consulte as propriedades de estado do foco usando
onFocusChanged. - Solicitar foco de forma programática: mova o foco explicitamente em resposta a ações do usuário ou erros de validação.
- Mover e limpar o foco: avance ou limpe o foco de forma programática usando
FocusManager. - Capturar e liberar o foco: capture o foco para subinterações modais e libere-o com segurança.
- Testar a navegação por foco: escreva testes automatizados do Compose para verificar interações de teclado em campos de texto e em 1D e 2D.
Recomendados para você
- Observação: o texto do link aparece quando o JavaScript está desativado.
- Segmentações por foco
- Ordem de apresentação do foco
- Foco em campos de texto
- Agrupar alvos de foco
- Testar a navegação por foco