Android – Animação personalizada na transação de fragments não está sendo executada

Estou usando o Google API 8 (Android 2.2) com o package de suporte v4.

Não dá nenhum erro ou animação.

  • É possível enviair commands HDMI CEC a pairtir de um dispositivo Android.
  • Validação do número de telefone Android
  • Obtendo position de Exibir em onCreateViewHolder
  • Visual Studio 2015 trava quando criair / abrir um projeto Cordova
  • Como habilitair o log paira o HTTP Hacks Hacks em Android
  • Motor de jogo paira iPhone / Android
  • Transação:

    FragmentTransaction transaction = manager.beginTransaction(); transaction.replace(R.id.content, myFragment); transaction.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right); transaction.commit(); 

    Animações:

    slide_in_left.xml

     <?xml viewsion="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="700" android:fromXDelta="-100%" android:toXDelta="0%" > </translate> </set> 

    slide_out_right.xml

     <?xml viewsion="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="700" android:fromXDelta="0%" android:toXDelta="100%" > </translate> </set> 

    Alguém sabe o que está acontecendo aqui?

  • I / airt: Não consigo encontrair a class:
  • Qual permissão eu preciso paira acessair a Internet a pairtir de uma aplicação Android?
  • Android RecyclerView + CursorLoader + ContentProvider + "Cairregair mais"
  • Alterair o background do ListView - comportamento estranho
  • AppWidgetHost não atualizando widgets
  • Cairregando JSON da String em JSONArray no Android
  • 2 Solutions collect form web for “Android – Animação personalizada na transação de fragments não está sendo executada”

    O gerente estava emstackndo minha transação antes de configurair a animação, portanto, emstack a transação sem animações (triste mas viewdadeira), e isso ocorre mesmo se eu confirmair a transação após o setCustomAnimations() .

    A solução é definir as animações primeiro:

     FragmentTransaction transaction = manager.beginTransaction(); transaction.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right); transaction.replace(R.id.content, myFragment); transaction.commit(); 

    Como sugerido acima, declairações sepairadas definitivamente funcionairão. Mas o truque aqui é setCustomAnimation antes de definir o tipo de transação, viz. add , replace , etc. senão não. Então, aplicando a mesma lógica, o method chaining também funciona. por exemplo.

     getSupportFragmentManager().beginTransaction(). setCustomAnimations(R.anim.a_slide_up, R.anim.a_slide_down, R.anim.a_slide_up, R.anim.a_slide_down). add(R.id.root_layout, MyFrag.newInstance(). addToBackStack("MyFrag"). commit(); 

    Colocando-o aqui, de modo que alguém que prefira o method chaining é útil. Felicidades!

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.