Cómo almacenar cada posición de la página viewpager en la lista de ellos?
Tengo una lista de viewpagers con UnderlinePageIndicator en RecyclerView, cerca de 30 en un fragmento. Quiero almacenar la posición de la página de cada buscapersonas en el objeto mFlat y recuperarlo desde mFlat en cada actualización del buscapersonas con la ayuda de
flatViewHolder.pager.setCurrentItem(mFlat.get(RecyclerViewPosition).getCur_pos());
Así que cuando intento guardar la página actual del primer buscapersonas está bien. Pero después de desplazar la página hacia abajo cada buscapersonas parece obtener este número de página – que está mal. Quiero almacenar todos los paginadores número de página. Aquí está mi viewpager addOnPageChangeListener
- Implemente el cajón deslizante con el visor donde se encuentra el cajón deslizante en el visor
- Implicado Z-Ordenando Para ViewPagers
- Fragmentos duplicados con RecyclerView que aparecen en ViewPager después de pasar
- Mostrando imágenes con efecto carrusel en android
- El proyecto de Android Studio funciona en Lollipop pero no funciona en Kitkat
flatViewHolder.pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int pos, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int pos) { // save current page pos in mFlat object mFlat.get(position).setCur_pos(pos); } @Override public void onPageScrollStateChanged(int state) { } });
Y esto se dispara cada vez en diferentes viewpagers cuando se desplaza la página
@Override public void onPageSelected(int pos) { // save current page pos in mFlat object mFlat.get(position).setCur_pos(pos); }
- ViewPager + SurfaceView = retraso largo al volver a la actividad
- ¿Cómo podemos trabajar en torno al título en blanco en PagerTitleStrip y PagerTabStrip?
- No se puede emitir a la clase ViewPager personalizada
- Android View onSaveInstanceState no se llama
- Fragmento de actualización de ViewPager en el dispositivo
- Problema de envoltura de contenido de Indicador TabPage de Android
- Cambio de la pestaña Default en la pestaña de la página del cajón de navegación
- Tutorial para implementar el uso de TabHost en Android 2.2 + ViewPager y Fragmentos
Creo que el problema es que estás llamando a addOnPageChangeListener
:
viewHolder.pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {[...]}
Dado que se mantiene la referencia al buscapersonas, cada vez que se desplaza se agrega un nuevo escucha. Cuando se activa ese oyente, su variable de position
se está utilizando en todos los oyentes asociados con la referencia del buscapersonas.
Por lo tanto, la solución rápida y sucia, creo, es usar setOnPageChangeListener
. Este método está obsoleto , pero aún no se ha eliminado de las API. El set
llamadas en lugar de add
reemplazará al oyente asociado actualmente con el buscapersonas con el nuevo. Por lo tanto, sólo se escuchará un oyente.
Intentalo. Creo que te llevará a donde tienes que ir.
Usted necesita hacer la referencia en onPageScrolled también, Agregar:
@Override public void onPageScrolled(int pos, float positionOffset, int positionOffsetPixels) { // Update reference for page scroll too mFlat.get(position).setCur_pos(pos); }
Cuando se desplaza la página nunca se actualiza, sólo si selecciona la página se actualizará, como lo ha hecho anteriormente.
- Deslice cargando imágenes cada vez que se desplaza el reciclado
- Repetir Administrador de Alarma en Intervalo Exacto en API => 19?