¿Cómo saber qué fragmento está seleccionado actualmente en un ViewPager?

Utilizo ViewPager cargado con los fragmentos en él y quiero saber qué fragmento se muestra actualmente o seleccionado en el viewpager.

El método onResume () de cada fragmento hace algo de lógica y por lo tanto tengo problemas cuando los fragmentos adyacentes (izquierda y derecha) a la página seleccionada actualmente también son instanciados.

Actualizado:

¿El fragmento recibe devoluciones cuando se selecciona?

ViewPager Código del adaptador:

public class LeftPanelPagerAdapter extends FragmentStatePagerAdapter { private List<Fragment> fragments; public LeftPanelPagerAdapter(FragmentManager fm,List<Fragment> fragments) { super(fm); this.fragments = fragments; } @Override public Fragment getItem(int position) { return this.fragments.get(position); } @Override public int getCount() { return this.fragments.size(); } @Override public int getItemPosition(Object object) { return POSITION_NONE; } @Override 

Desde el código publicado por confucio, no funcionó para mí. Lo modifiqué un poco.

El problema es que no su FragmentStatePagerAdapter debe implementar el OnPageChangeListener, sino la Actividad en sí. Y debe establecer un oyente para el mPager que contiene su LeftPanelPagerAdapter.

 public class ImageDetailActivity extends Activity implements OnPageChangeListener @Override public void onCreate(Bundle savedInstanceState) { mPager = (ViewPager) findViewById(R.id.pager); mPager.setAdapter(mAdapter); mPager.setOnPageChangeListener(this); .... } 

br MikeT

 FragmentPagerAdapter adapter = (FragmentPagerAdapter) mViewPager.getAdapter(); ((IFieldServiceFragment) adapter.getItem(mViewPager.getCurrentItem())) .updateFragment(); 

Puede obtener el índice del elemento actual desde ViewPager y luego obtener ese elemento (Fragmento) desde el adaptador.

sólo usar ViewPager.getCurrentItem() y se devuelve su posición para usted.

 public class LeftPanelPagerAdapter extends FragmentStatePagerAdapter implements OnPageChangeListener{ ..... ..... .... private int currentSelectedFragmentPosition = 0; public void onPageScrollStateChanged(int arg0) { // TODO Auto-generated method stub } public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub } public void onPageSelected(int arg0) { currentSelectedFragmentPosition = arg0; } public int getCurrentSelectedFragmentPosition() { return currentSelectedFragmentPosition; } } 

puede implementar OnPageChangeListener y agregar una variable de miembro que se puede utilizar para seguir el seguimiento de la posición del fragmento seleccionado actual.

cada vez que desee saber cuál es el fragmento seleccionado actualmente haga esto

 myAdapter.getCurrentSelectedFragmentPosition(); 
  • Cómo actualizar dinámicamente el elemento TITLE del visor de vistas
  • Mediaplayer responde al segundo clic para pausar
  • La clase PagerAdapter se llama varias veces
  • ViewPager analógico para paginación a horizontales y verticales
  • Flip imágenes en un viewpager
  • Añadir / eliminar páginas a ViewPager dinámicamente
  • En viewpager, Setadapter y SetCurrentItem eliminar las transformaciones establecidas por pagetransform
  • Errores de coincidencia de tar cuando agrega biblioteca en eclipse
  • FragmentPagerAdapter no está quitando elementos (Fragmentos) correctamente
  • Pestañas deslizantes dentro de las pestañas de la barra de acciones
  • FragmentStatePageAdapter duplica elementos del menú ActionBar
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.