Animación de Android ViewPager CrossFade

Implemento una vista BottomNavigation para android y tengo algunos fragmentos para mostrar como BottomNavigation páginas. De acuerdo con las Líneas de la Guía de diseño de material de Google , quiero mostrar fragmentos con animación de desvanecimiento cruzado.

Al tocar los elementos de BottomNavigation, mi ViewpPager cambia los fragmentos con la animación de diapositivas predeterminada.

He leído algunas soluciones en esto y esto . Pero estos no son realmente la animación se desvanecen y no pude establecer la duración de desvanecimiento.

¿Hay alguna manera de establecer una animación al cambiar las pestañas de ViewPager?

One Solution collect form web for “Animación de Android ViewPager CrossFade”

Finalmente, encontré mi respuesta.

Cambié el ViewPager con un diseño para guardar mis fragmentos (un diseño del marco). Entonces agregué fragmentos en un fragmentTransaction.

Al tocar un elemento en BottomNavigation, el fragmento actual se oculta y los nuevos fragmentos se muestran con una animación de fundido definida en fragmentTransaction.

Y este es mi código:

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_page); addFragmentsToManager(); } private void addFragmentsToManager() { FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.setCustomAnimations(R.anim.fade_in, R.anim.fade_out); fragmentTransaction.add(R.id.flContent, tripFragment, tripFragment.getClass().getSimpleName()); fragmentTransaction.add(R.id.flContent, notificationFragment, notificationFragment.getClass().getSimpleName()); fragmentTransaction.add(R.id.flContent, searchFragment, searchFragment.getClass().getSimpleName()); fragmentTransaction.add(R.id.flContent, profileFragment, profileFragment.getClass().getSimpleName()); fragmentTransaction.hide(tripFragment); fragmentTransaction.hide(notificationFragment); fragmentTransaction.hide(searchFragment); fragmentTransaction.hide(profileFragment); fragmentTransaction.commit(); } private void changeTab(int position) { Fragment fragment; switch (position) { fragment = .....// get framgnet from position } FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.setCustomAnimations(R.anim.fade_in, R.anim.fade_out); fragmentTransaction.hide(prvFragment); fragmentTransaction.show(fragment).commit(); prvFragment = fragment; } 
  • ¿Por qué ViewPager y GridLayout con 30 elementos son muy lentos?
  • Visor dinámico de altura
  • Reemplazar fragmento dentro de un ViewPager
  • Android actualiza un ViewPager dentro de un fragmento
  • Android "primera vez" aplicación user tutorial
  • ¿Cómo puedo pasar una variable a través de FragmentPagerAdapter a un fragmento?
  • Cómo destruir fragmentos antiguos en FragmentStatePagerAdapter
  • Deslizar un elemento a la vez
  • Android ViewPager no llama a onDetach / onDestroy / onDestroyView para cuando se sustituye en un contenedor
  • SwipeRefreshLayout + ViewPager, limitar el desplazamiento horizontal solamente?
  • Android AppBarLayout empuja ViewPager hacia abajo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.