¿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.

  • Haga clic en ListFragment
  • Cómo hacer la transición de viewpager rápido con fragmento?
  • ¿Por qué no se recomienda la comunicación directa entre fragmentos?
  • SearchView no filtrar en cada niño Tab de TabLayout
  • AddTextChangedListener y onTextChanged siempre se llaman cuando se carga Android Fragment
  • Disposición de restricción beta 4 - los fragmentos no funcionan
  • RequestCode incorrecto en onActivityResult
  • Android FragmentTransaction setTransitionStyle
  • Fragmento abierto del fragmento Preferencia; Cambiar el diseño de la barra de acción desde la pantalla de Preferencias anidadas en Android
  • Reemplazar fragmento con otro fragmento dentro de ViewPager
  • Comunicarse entre presentadores en la aplicación MVP android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.