Iniciar animación cuando el fragmento es visible en ViewPager
Estoy usando un ViewPager junto con un FragmentStatePagerAdapter, y me gustaría iniciar una animación en un fragmento cuando este fragmento es visible y sólo cuando es visible. El problema es que la animación comienza cuando el fragmento es el que está después de aquel que es visto actualmente por el usuario. Moví el código de animación de la función de fragmento "onActivityCreated" a la función de fragmento "onStart", e incluso a la función de fragmento "onResume", pero sucede lo mismo.
Básicamente, necesito esperar a que el fragmento sea la página vista por el usuario para iniciar algún código. ¿Cómo puedo hacer eso?
- ActionBar pre Honeycomb
- Diferencia entre onCreate () y onStart ()?
- Iniciar una animación onstart CustomViewPager
- Ejecutar Android App dos veces para trabajar, ¿por qué?
- Android.os.NetworkOnMainThreadException en el inicio del servicio en android
Gracias por adelantado.
- Android - Actividad onCreate y Fragment onCreate
- Ciclo de vida de Android: rellena datos en actividad en onStart () o onResume ()?
- Error de NetworkOnMainThreadException en jellybean
- ¿Qué ocurre entre onCreate y onStart para Android?
Lo hice.
CustomOnPageChangeListener page_listener = new CustomOnPageChangeListener(); view_pager.setOnPageChangeListener(page_listener); ... private static class CustomOnPageChangeListener extends SimpleOnPageChangeListener { @Override public void onPageSelected(int position) { if (position == fragment_position) { MyFragment fragment = (MyFragment) fragment_pager_adapter.instantiateItem(view_pager, fragment_position); fragment.startAnimation(); } super.onPageSelected(position); } }
Y, por supuesto, debe escribir una función startAnimation () que inicia la animación en el código MyFragment .
¿Ha intentado utilizar lo siguiente:
@Override public void onWindowFocusChanged (boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus) myTextView.startAnimation(anim); }
Utilizar esta. Trabajó perfectamente para FragmentStatePagerAdapter.
@Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser) { // TODO } }