viewpager setonpagechangelistener en desuso

3 minutos de lectura

avatar de usuario
jaydipsinh zala

Hoy estoy tratando de establecer ViewPager.setOnPageChangeListener y descubrí que está en desuso.

  • por cierto, Este método está en desuso. Use addOnPageChangeListener(OnPageChangeListener) y removeOnPageChangeListener(OnPageChangeListener) en su lugar.es de la documentación

    – Cinta negra

    16 de junio de 2015 a las 12:45


avatar de usuario
jaydipsinh zala

ViewPager.setOnPageChangeListener está en desuso ahora. Necesitará usar ViewPager.addOnPageChangeListener en cambio.

por ejemplo,

ViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {

        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

Puedes encontrar esto Aquí.

  • Parece que Eclipse ni siquiera pudo encontrar el método addOnPageChangeListener, ¿puedo preguntar de qué biblioteca de soporte es esto?

    – Guerra de neón

    6 de septiembre de 2015 a las 5:13

  • Creo que aquí vale la pena mencionar clearOnPageChangeListeners(), por lo que uno no termina con múltiples oyentes cuando se usa addOnPageChangeListener().

    – relojero

    25/10/2015 a las 21:53

  • Eso es confuso. Sería bueno si mantuvieran la misma sintaxis y simplemente reemplazaran esta llamada o algo así con la versión actualizada.

    – Jay Snayder

    12 de febrero de 2016 a las 18:46

avatar de usuario
kinsley kajiva

esto funcionó para mí:

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener(){

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {       
        conterchange.setText(""+(1+position));
    }

    @Override
    public void onPageSelected(int position) {
    }

    @Override
    public void onPageScrollStateChanged(int state) {
    }
});

Usar ViewPager.addOnPageChangeListener en vez de ViewPager.setOnPageChangeListener.

En caso de que alguien necesite la solución en kotlin:

viewPager.addOnPageChangeListener (object: ViewPager.OnPageChangeListener {
        override fun onPageScrollStateChanged(state: Int) {
            TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
        }

        override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
            TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
        }

        override fun onPageSelected(position: Int) {
            TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
        }

    })

Puede lograr a través de SimpleOnPageChangeListener
A continuación se muestra el código:

private Fragment page = null;
/** Defining a listener for pageChange */
        ViewPager.SimpleOnPageChangeListener pageChangeListener = new ViewPager.SimpleOnPageChangeListener(){
            @Override
            public void onPageSelected(int position) {
                super.onPageSelected(position);

                page = getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.pager_selectPhotos + ":" + position);

                System.out.println(page);
                switch (position) {
                case 0:

                    break;
                case 1:

                    break;

                default:
                    break;
                }
            }
        };
        /** Setting the pageChange listener to the viewPager */
        _pager.setOnPageChangeListener(pageChangeListener);

  • La pregunta era una alternativa para el obsoleto función setOnPageChangeListener.

    – Primaria

    12 de enero de 2018 a las 12:27

avatar de usuario
Buena vida

  1. Cree una interfaz si es necesario;

    public interface FragmentLifecycle {
    public void onPauseFragment();
    public void onResumeFragment();
    

    }

  2. Implemente la interfaz en cada fragmento en el visor como se muestra

 public class FragmentCast extends Fragment implements FragmentLifecycle {
  @Override
    public void onPauseFragment() {
        Log.i(TAG, "onPauseFragment()");
        Toast.makeText(getActivity(), "onPauseFragment():" + TAG, Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onResumeFragment() {
        Log.i(TAG, "onResumeFragment()");
        Toast.makeText(getActivity(), "onResumeFragment():" + TAG, Toast.LENGTH_SHORT).show();
    }
  1. Liste así es como usa el addOnPageListener

    ingrese viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { int currentPosition = 0;

        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
    
        }
    
        @Override
        public void onPageSelected(int position) {
    
    
            FragmentLifecycle   fragmentLifecycleToShow =(FragmentLifecycle) viewPager.getAdapter().instantiateItem(viewPager, viewPager.getCurrentItem());
            fragmentLifecycleToShow.onResumeFragment();
    
            FragmentLifecycle   fragmentLifecycleToHide =(FragmentLifecycle) viewPager.getAdapter().instantiateItem(viewPager, currentPosition);
            fragmentLifecycleToHide.onPauseFragment();
    
            currentPosition = position;
        }
    
        @Override
        public void onPageScrollStateChanged(int state) {
    
        }
    });
    
  2. Implemente sus llamadas en onPauseFragment() o onResumeFragment()

  • La pregunta era una alternativa para el obsoleto función setOnPageChangeListener.

    – Primaria

    12 de enero de 2018 a las 12:27

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad