Por padrão, os gestos "Voltar" preditivos e as animações do sistema estão ativados. Se o app interceptar o evento de retorno e você não tiver migrado para a volta preditiva, atualize o app para usar as APIs de navegação de retorno compatíveis.
Ativar animações padrão do sistema
As animações do sistema de volta à tela inicial, entre atividades e entre tarefas estão disponíveis no Android 15 e em dispositivos mais recentes para apps que migraram para as APIs de processamento de volta compatíveis.
- Voltar para a página inicial: retorna o usuário à tela inicial.
- Entre atividades: transições entre atividades no app.
- Entre tarefas: transições entre tarefas.
Essas animações são ativadas por padrão no Android 15 e em versões mais recentes. Em dispositivos com Android 13 ou 14, os usuários podem ativar essas opções em Opções do desenvolvedor.
Para receber as animações do sistema, atualize a dependência do AndroidX Activity
para 1.6.0 ou mais recente.
Ativar a volta preditiva com a navegação do Compose
Para usar a volta preditiva no Navigation Compose, verifique se você está usando a biblioteca
navigation-compose
2.8.0
ou mais recente.
O Navigation Compose faz uma transição automática entre telas quando o usuário desliza para trás:
Ao navegar, é possível criar transições personalizadas com
popEnterTransition
e popExitTransition
. Quando aplicados ao seu
NavHost
, esses modificadores permitem definir como as telas de entrada e saída
são animadas. É possível usá-los para criar vários efeitos, como dimensionamento, esmaecimento ou deslizamento.
Neste exemplo, scaleOut
é usado em popExitTransition
para reduzir
a tela de saída à medida que o usuário volta. Além disso, o parâmetro transformOrigin
determina o ponto em torno do qual a animação de dimensionamento ocorre. Por padrão, é o centro da tela (0.5f, 0.5f
). Você pode ajustar esse valor para fazer com que o dimensionamento se origine em outro ponto.
NavHost( navController = navController, startDestination = Home, popExitTransition = { scaleOut( targetScale = 0.9f, transformOrigin = TransformOrigin(pivotFractionX = 0.5f, pivotFractionY = 0.5f) ) }, popEnterTransition = { EnterTransition.None }, modifier = modifier, )
Esse código produz o seguinte resultado:
O popEnterTransition
e o popExitTransition
controlam especificamente as animações
ao remover a backstack, com um gesto de retorno, por exemplo. Você também pode usar enterTransition
e exitTransition
para definir animações de entrada e saída de elementos combináveis em geral, não apenas para o retorno preditivo. Se você definir apenas enterTransition
e exitTransition
, eles serão usados para navegação regular e para remover a pilha de retorno. No entanto, usar popEnterTransition
e popExitTransition
permite criar animações distintas para a navegação de volta.
Integrar com transições de elementos compartilhados
As transições de elementos compartilhados fornecem uma conexão visual suave entre combináveis com conteúdo compartilhado, geralmente usados para navegação.
Para usar elementos compartilhados com o Navigation Compose, consulte Volta preditiva com elementos compartilhados.
Suporte à volta preditiva com componentes do Material Compose
Muitos componentes da biblioteca Material Compose foram projetados para funcionar perfeitamente
com gestos de volta preditiva. Para ativar as animações de volta preditiva nesses
componentes, inclua a dependência Material3 mais recente (androidx.compose.material3:material3-*:1.3.0
ou mais recente) no seu projeto.
Os componentes do Material que oferecem suporte a animações de volta preditiva incluem:
SearchBar
ModalBottomSheet
ModalDrawerSheet/DismissibleDrawerSheet
ModalNavigationDrawer/DismissibleNavigationDrawer
SearchBar
e ModalBottomSheet
são animados automaticamente com
gestos de volta preditiva. ModalNavigationDrawer
,
ModalDrawerSheet
, DismissibleDrawerSheet
e
DismissibleNavigationDrawer
exigem que você transmita o drawerState
aos
elementos combináveis de conteúdo da página respectivos.
Testar a animação do gesto de volta preditivo
Se você ainda usa o Android 13 ou 14, teste a animação de volta à tela inicial.
Para testar a animação, siga estas etapas:
- No dispositivo, acesse Configurações > Sistema > Opções do desenvolvedor.
- Selecione Animações de gestos "Voltar" preditivos.
- Inicie o app atualizado e use o gesto "Voltar" para testar o recurso.
No Android 15 e mais recentes, esse recurso é ativado por padrão.
Outros recursos
- Codelab de adição de animações de volta preditiva
- Vídeo sobre animações de layout avançadas no Compose