Cómo obtener una indicación de que el usuario está intentando desplazarse más en un ViewPager

Quiero iniciar una nueva actividad una vez que un usuario intenta desplazarse cuando está en el último fragmento (cuando ocurre el efecto de rebote). Estoy usando ViewPagerIndicator

El código siguiente inicia la actividad una vez que el último fragmento es visible.

¿Alguna idea?

CirclePageIndicator titleIndicator = (CirclePageIndicator)findViewById(R.id.titles); titleIndicator.setViewPager(pager); titleIndicator.(new ); titleIndicator.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageSelected(int position) { selectedIndex = position; } @Override public void onPageScrolled(int position, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int scroll) { if(selectedIndex == adapter.getCount()-1) { launchactivity)(; } } }); 

mPager.getAdapter().getCount() - 1 Cuando el estado del desplazador es ViewPager.SCROLL_STATE_DRAGGING significa que el dedo del usuario está todavía en la pantalla y arrastrando el mPager.getAdapter().getCount() - 1 ver. La condición siguiente necesita 0 positionOffset consecutivo para decidir si está entrando en el modo overscroll.

  titleIndicator.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { private int mScrollState = -1; private float mPreviousPageOffset; @Override public void onPageScrollStateChanged(int state) { super.onPageScrollStateChanged(state); mScrollState = state; if(mScrollState == ViewPager.SCROLL_STATE_IDLE) mPreviousPageOffset = -1; } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { super.onPageScrolled(position, positionOffset, positionOffsetPixels); boolean isLastPosition = position == mPager.getAdapter().getCount() - 1; if(isLastPosition && mScrollState == ViewPager.SCROLL_STATE_DRAGGING && mPreviousPageOffset == 0f && positionOffset == 0f){ //launchActivity } mPreviousPageOffset = positionOffset; } }); 

Si el usuario libera el dedo, el positionOffset seguirá siendo 0, pero el estado del scroller será ViewPager.SCROLL_STATE_SETTLING o el que obtendremos 0 para positionOffset sólo una vez.

  • Android ViewPager: fragmentos superpuestos cuando el ancho de página se establece en 90%
  • Escucha de zoom para PhotoView
  • 3 fragmentos androides en viewpager, cómo mantenerlos todos vivos?
  • Iniciar animación cuando el fragmento es visible en ViewPager
  • Los fragmentos ViewPager hacen referencia al mismo RecyclerView y / o Adapter
  • Actualizar ViewPager dinámicamente?
  • Widget de página de Viewpager más ancho de pantalla en Android
  • ¿Cómo pasar argumentos de fragmentos mientras se utiliza un paginador de vista con diferentes fragmentos / layouts?
  • ¿Dónde está un código de ejemplo / tutorial de Viewpager que funciona bien para todos?
  • Quitar dinámicamente un elemento de un ViewPager con FragmentStatePagerAdapter
  • Los fragmentos no se liberan de la memoria
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.