Exemplos do MotionLayout

Este documento contém exemplos de como usar o MotionLayout. Cada exemplo inclui um vídeo demonstrando o movimento, com o código correspondente para a cena e os layouts do movimento.

Movimento básico

Este exemplo contém uma única visualização que você pode tocar e arrastar para mover na horizontal.

Figura 1. Arrastar uma visualização.

Atributo personalizado: backgroundColor

Este exemplo é semelhante ao Movimento básico. Além do movimento básico, a cor do plano de fundo muda conforme a visualização se move.

Figura 2. Arrastar uma visualização enquanto a cor do plano de fundo muda.

ImageFilterView: transição de imagens

Este exemplo mostra como fazer a transição do valor de saturação de uma ImageFilterView.

Figura 3. Arrastar uma imagem enquanto a saturação dela muda.

Posição de frames-chave

Esse exemplo usa <KeyFrameSet> para mudar a posição Y da visualização durante o movimento.

Figura 4. Arrastar uma visualização e mudar a posição Y dela.

Interpolação de frames-chave

Este exemplo se baseia no exemplo de Posição do frame-chave, adicionando rotação e dimensionamento à transição de visualização.

Figura 5. Arrastar uma visualização e alterar a posição, a rotação e a escala Y dela.

Ciclo de frames-chave

Este exemplo inclui elementos <KeyCycle> para adicionar movimento de onda à visualização.

Figura 6. Arrastar uma visualização com um movimento semelhante a uma onda e mudar a cor dela.

CoordinatorLayout (1/2)

Este exemplo adiciona um MotionLayout a uma AppBarLayout já existente para adicionar movimento à barra de apps. Este exemplo é descrito em Introdução ao MotionLayout (parte III) (link em inglês).

Figura 7. Rolagem de conteúdo enquanto a barra de apps se expande.

CoordinatorLayout (2/2)

Este exemplo adiciona um MotionLayout a uma AppBarLayout já existente para adicionar movimento à barra de apps.

Figura 8. Rolagem de conteúdo enquanto a barra de apps se expande e o texto é animado para dentro e para fora da barra de apps.

DrawerLayout (1/2)

Este exemplo mostra como adicionar movimento a um DrawerLayout. Este exemplo é descrito com mais detalhes em Introdução ao MotionLayout (parte III) (link em inglês).

Figura 9. Expandindo o "DrawerLayout".

DrawerLayout (2/2)

Este exemplo mostra como adicionar movimento a um DrawerLayout.

Figura 10. Expansão de "DrawerLayout" com texto de menu animado.

Painel lateral

Este exemplo mostra como exibir um painel lateral ao arrastar a área de conteúdo principal para a direita.

Figura 11. Mostrar um painel lateral arrastando o conteúdo principal.

Paralaxe

Esse exemplo demonstra um plano de fundo com efeito paralaxe, em que diferentes camadas de segundo plano se movem em velocidades distintas.

Figura 12. Efeito paralaxe na imagem do cabeçalho.

ViewPager

Este exemplo mostra como adicionar movimento ao deslizar entre guias ViewPager. Este exemplo é descrito em Introdução ao MotionLayout (parte III) (link em inglês).

Figura 13. Efeito paralaxe na imagem do cabeçalho ao deslizar um ViewPager.

ViewPager: Lottie

Este exemplo mostra como adicionar movimento ao deslizar entre guias ViewPager.

Figura 14. Imagem que mostra um efeito Lottie na imagem do cabeçalho ao deslizar um ViewPager.

Movimento complexo (1/3)

Este exemplo combina elementos de exemplos anteriores para demonstrar movimentos complexos.

Figura 15. Combinar efeitos para criar movimentos complexos.

Movimento complexo (2/3)

Este exemplo combina elementos de exemplos anteriores para demonstrar movimentos complexos.

Figura 16. Combinar efeitos para criar movimentos complexos.

Movimento complexo (3/3)

Este exemplo combina elementos de exemplos anteriores para demonstrar movimentos complexos.

Figura 17. Combinar efeitos para criar movimentos complexos.

Transição de fragmentos (1/2)

Este exemplo mostra como usar o MotionLayout para fazer a transição entre fragmentos.

Figura 18. Transição de fragmentos.

Transição de fragmentos (2/2)

Este exemplo mostra como usar o MotionLayout para fazer a transição entre fragmentos.

Figura 19. Transição de fragmentos.

Movimento parecido com o YouTube

Este exemplo demonstra a transição entre uma visualização compacta e uma experiência em tela cheia com conteúdo extra.

Figura 20. A transição de fragmentos é semelhante à do YouTube.

KeyTrigger

Este exemplo demonstra como mostrar e ocultar um botão de ação flutuante quando a transição ultrapassa um limite de progresso.

Figura 21. Mostra e oculta um botão de ação flutuante.

Estado múltiplo

Este exemplo mostra como usar o estado para determinar qual movimento aplicar.

Figura 22. Movimentos diferentes com base no estado.