Eu verifiquei alguns tutoriais para animar transações entre fragmentos. Usei este método para animação e funciona:
fragmentTransaction.setCustomAnimations(android.R.anim.slide_in_left,
android.R.anim.slide_out_right);
Mas eu quero inverter esta animação: o antigo fragmento desliza para a esquerda e o novo fragmento desliza para a direita, mas nenhum valor de R.anim
arquivo parece ser útil para meu escopo.
Como eu posso fazer isso?
override
key_code==back_key_press
em seu segundo fragmento.Respostas:
ATUALIZAÇÃO Para Android v19 + veja este link via @Sandra
Você pode criar suas próprias animações. Colocar arquivos XML de animação em
res > anim
enter_from_left.xml
enter_from_right.xml
exit_to_left.xml
exit_to_right.xml
você pode alterar a duração para um curto tempo de animação
ou longo tempo de animação
USAGE (observe que a ordem em que você chama os métodos na transação é importante. Adicione a animação antes de chamar .replace, .commit):
fonte
700
é um pouco demais para essas animações, na minha opinião. O quadro Android tem 3 presets para sincronismo:android:duration="@android:integer/config_longAnimTime"
,android:duration="@android:integer/config_mediumAnimTime"
eandroid:duration="@android:integer/config_shortAnimTime"
, o que corresponde a 500, 400 e 200. Eu acho que a unidade é milissegundos, mas eu não tenho certeza.Existem três formas de animação de transação em fragmento.
Transições
Animações Personalizadas
Você também pode personalizar a animação usando o método setCustomAnimations ():
slide_up.xml
slide_down.xml
Múltiplas animações
Para mais detalhes, você pode visitar URL
Nota: - Você pode verificar a animação de acordo com sua necessidade porque acima pode haver problemas.
fonte
Eu tenho o mesmo problema, usei solução simples
1) crie slides_out_right.xml na pasta anim
2) crie slides_in_left.xml na pasta anim
3) simplesmente usando a transação de fragmento setCustomeAnimations () com dois xml personalizados e dois xml padrão para animação da seguinte maneira: -
fonte
slide_in_down.xml
slide_in_up.xml
slide_out_down.xml
slide_out_up.xml
direção = baixo
direção = para cima
fonte
Esta é outra solução que utilizo:
O uso da classe. Digamos que você tenha dois fragmentos (fragmentos de lista e detalhes) conforme mostrado abaixo
Uso
Você pode usar a função
CustomAnimator.reversePrevious();
para obter a visualização anterior quando o usuário pressionou de volta.fonte