¿Cómo usar animaciones predeterminadas en Android?

Estoy tratando de usar las animaciones por defecto para la actividad con fragmentos .. aquí he encontrado algo sobre él:

Android: usando la animación predeterminada de la actividad para Fragmentos

El problema es: ok, necesito (por ejemplo) "activityOpenEnterAnimation" .. ¿cómo puedo usarlo?

El uso del siguiente código no funcionará:

FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.setCustomAnimations(android.R.anim.activityOpenEnterAnimation, android.R.anim.activityOpenExitAnimation); transaction.replace(R.id.container, fragment) .addToBackStack(((Object) fragment).getClass().getName()) .commit(); 

¿Sugerencias? ¡Gracias! 🙂

Hoy en día, la documentación de Android claramente recomienda no utilizar recursos directamente de android.R.* , Ya que cada versión de la plataforma tiene cambios en ellos. Incluso algunos recursos desaparecen de una versión a otra, por lo que no debe confiar en ellos. Por otro lado, muchos recursos son privados y no están disponibles en el código de un desarrollador.

La forma más segura (y recomendada) es simplemente copiar y pegar los recursos que necesita (en este caso, las animaciones) del código fuente de la versión de Android que desee en su propio código, y usarlos a través de la R.* regular.

Puede explorar el código fuente de Android de muchas maneras, como se explica en [1].

[1] ¿Dónde puedo encontrar el código fuente de Android en línea?

Logré que funcionara de esta manera:

 static public int getResourceIdFromCurrentThemeAttribute(FragmentActivity activity, int attribute){ TypedValue a = new TypedValue(); activity.getTheme().resolveAttribute(attribute, a, false); return a.resourceId; } //This type of fragment will be opened like an activity static public void openActivityLikeFragment(FragmentActivity activity, BaseFragment fragment, int containerId, String stackRef) { FragmentManager fm = activity.getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); //The fragment open/close transition should have the same animations as its activity ft.setCustomAnimations( getResourceIdFromCurrentThemeAttribute(activity, android.R.attr.activityOpenEnterAnimation), getResourceIdFromCurrentThemeAttribute(activity, android.R.attr.activityOpenExitAnimation), getResourceIdFromCurrentThemeAttribute(activity, android.R.attr.activityCloseEnterAnimation), getResourceIdFromCurrentThemeAttribute(activity, android.R.attr.activityCloseExitAnimation) ); ft.replace(containerId, fragment); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); ft.addToBackStack(stackRef); ft.commit(); } 

Esta solución es más segura que la referencia directa a un recurso, ya que hace referencia a un atributo que no cambiará sin algunas advertencias de depreciación.

  • NullPointerException android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState
  • Cambio de orientación con viewPager dentro de FragmentActivity
  • Cómo manejar AsyncTask onPostExecute cuando se pausan para evitar IllegalStateException
  • NullPointerException en FragmentManager
  • Android.support.v4.app.getFragmentManager () devuelve null?
  • Ver ciclo de vida del paginador y del fragmento
  • TabHost con Fragmentos y FragmentActivity
  • La transición de elementos compartidos funciona con FragmentTransaction.replace () pero no funciona con FragmentTransaction.add ()
  • ¿Cómo bloquear la orientación de los fragmentos sin bloquear la orientación de la actividad?
  • Ocultación de las pestañas de la acciónBar con el modo de navegación que afecta negativamente a la fragilidad de fragmento
  • Error al agregar fragmentos dinámicamente -java.lang.IllegalStateException:
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.