Garanta a compatibilidade com a navegação por gestos

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 pelo recurso barra de navegação, você precisa configurar algumas mudanças no seu app.

Consulte Mostrar conteúdo de ponta a ponta no app. para mais detalhes.

Processar gestos conflitantes do app

O modelo de navegação por gestos pode entrar em conflito com gestos anteriormente usados pelos desenvolvedores de apps. Talvez seja necessário fazer ajustes de acordo com as necessidades interface do usuário como resultado.

Conflitos com gestos "Voltar"

O novo gesto para voltar é deslizar da esquerda para a direita ou borda direita da tela. Isso pode interferir com elementos de navegação do aplicativo em nessas áreas. 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. Você pode fazer isso passando uma List<Rect> para View.setSystemGestureExclusionRects() API 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:

Kotlin

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)
}

Java

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 os gestos de Tela inicial ou de Alternância rápida

Os novos gestos do sistema para a tela inicial e a ativação rápida envolvem deslizar a tela parte inferior da tela no espaço anteriormente ocupado pela barra de navegação. Aplicativos não podem desativar esses gestos como fariam com o gesto de volta.

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 gestos do sistema. Nesses casos, os jogos podem usar Window.setSystemGestureExclusionRects() para excluir áreas que se sobrepõem àquelas reservadas para gestos do sistema. Jogos exclua essas áreas apenas quando necessário, como durante durante as partidas.

Se um jogo exigir que o usuário deslize perto da área de gestos de início, o app poderá ser apresentada no modo imersivo. Essa ação desativa os gestos do sistema enquanto o usuário interage com o jogo, mas permite que o usuário reative os gestos do sistema deslizando a partir da parte inferior da 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. Quando implementado totalmente, esse recurso permite que os usuários visualizem o destino ou outro resultado de um gesto de volta antes de por completo, o que lhes permite decidir se devem continuar ou permanecer a visualização atual.

Consulte Suporte para o gesto de volta preditivo para mais detalhes.

Outros recursos

Para saber mais sobre a navegação por gestos, consulte:

Postagens do blog

Vídeos