A partir do Android 10 (nível 29 da API), o sistema Android oferece suporte total navegação baseada em gestos. Os desenvolvedores de apps precisam fazer duas coisas para garantir seus aplicativos são compatíveis com este recurso:
- Estender o conteúdo do app de ponta a ponta na tela
- Resolver conflitos de gestos do app
Além disso, o Android 13 (nível 33 da API) introduz uma gesto de volta preditivo para Android como smartphones, telas grandes e dobráveis, que fazem parte de um período lançamento. Os desenvolvedores de aplicativos podem tomar medidas para garantir que seus aplicativos ofereçam suporte ao o gesto de volta preditivo.
Fornecer conteúdo de ponta a ponta no app
Para aproveitar o espaço adicional na tela disponibilizado pela barra de navegação flutuante, você precisa configurar algumas mudanças no app.
Consulte Mostrar conteúdo de ponta a ponta no app para saber mais.
Processar gestos de apps conflitantes
O modelo de navegação por gestos pode entrar em conflito com gestos usados anteriormente pelos desenvolvedores de apps. Por isso, talvez seja necessário fazer ajustes na interface do usuário do app.
Conflitos com gestos "Voltar"
O novo gesto do sistema para voltar é um deslizar em direção à borda esquerda ou direita da tela. Isso pode interferir com elementos de navegação do aplicativo em
nessas áreas. Para manter a funcionalidade dos elementos nas extremidades esquerda e direita
da tela, desative o gesto de voltar seletivamente, indicando ao
quais regiões precisam receber entrada por toque. Para fazer isso, transmita uma
List<Rect>
para a API View.setSystemGestureExclusionRects()
introduzida no Android 10. Esse método também está disponível no ViewCompat
a partir de
androidx.core:core:1.1.0-dev01
.
Exemplo:
var exclusionRects = listOf(rect1, rect2, rect3) fun onLayout( changedCanvas: Boolean, left: Int, top: Int, right: Int, bottom: Int) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects) } fun onDraw(canvas: Canvas) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects) }
List<Rect> exclusionRects; public void onLayout( boolean changedCanvas, int left, int top, int right, int bottom) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects); } public void onDraw(Canvas canvas) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects); }
Conflitos com gestos de Tela inicial ou Alternância rápida
Os novos gestos do sistema para a Tela inicial e a Alternância rápida envolvem deslizar até a parte inferior da tela, no espaço anteriormente ocupado pela barra de navegação. Os apps não podem desativar esses gestos, como acontece com o gesto "Voltar".
Para mitigar esse problema, o Android 10 introduz a
WindowInsets.getMandatorySystemGestureInsets()
API, que informa aos apps os limites de reconhecimento de toque.
Jogos e outros apps sem visualização
Jogos e outros apps que não têm uma hierarquia de visualização geralmente exigem que o usuário
deslize perto das áreas de gesto do sistema. Nesses casos, os jogos podem usar
Window.setSystemGestureExclusionRects()
para excluir áreas que se sobrepõem a regiões reservadas para os gestos do sistema. Jogos
exclua essas áreas apenas quando necessário, como durante
durante as partidas.
Se o jogo precisa que o usuário deslize perto da área de gestos de início, o app pode solicitar a exibição no modo imersivo. Isso desativa os gestos do sistema enquanto o usuário interage com o jogo, mas permite que ele reative os gestos do sistema deslizando de baixo para cima na tela.
Atualizar o app para oferecer suporte ao gesto de volta preditivo
O Android 13 (nível 33 da API) introduz um gesto de volta preditivo para dispositivos Android, como smartphones, telas grandes e dobráveis. A volta preditiva o gesto faz parte de um lançamento plurianual. Após a implementação, esse recurso permite que o usuário visualize o destino ou outro resultado de um gesto "Voltar" antes de concluí-lo. Assim, ele pode decidir se quer continuar na visualização atual ou concluir a ação.
Consulte Adicionar suporte ao gesto de volta preditivo para mais detalhes.
Outros recursos
Para saber mais sobre a navegação por gestos, consulte: