Android SimpleOnPageChangeListener – определение направления движения

У меня есть класс, который расширяет SimpleOnPageChangeListener и в моем методе onPageScrollStateChanged. Я хочу, чтобы определить, был ли пользователь прокручен вперед или назад через ViewPager. То есть ли они пробиты слева направо или справа налево.

Я много сделал для этого, но ничего не могу найти. Я ожидал, что метод onPageScrollStateChanged предоставит параметр, указывающий, в каком направлении находится салфетка, но это не так.

@Override public void onPageScrollStateChanged(int state) { // Determine whether the user is swiping forwards or backwards through the ViewPager } 

У кого-нибудь есть идеи?

Приветствие Майка

Используйте ViewPager.SimpleOnPageChangeListener и сохраните экземпляр var с текущей вкладкой pos, таким образом, вы сможете определить, каким образом он был взят.

 private final ViewPager.SimpleOnPageChangeListener mPageChangeListener = new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageSelected(final int position) { onTabChanged(mPager.getAdapter(), mCurrentTabPosition, position); mCurrentTabPosition = position; } }; protected void onTabChanged(final PagerAdapter adapter, final int oldPosition, final int newPosition) { //Calc if swipe was left to right, or right to left if (oldPosition>newPosition){ // left to right } else{ //right to left } } 
  int prevPage; @Override public void onPageSelected(int position) { // went back a page if (position-1 == prevPage) { Log.i("Swipped", "Swipped Left"); } // went up a page if (position+1 == prevPage) { Log.i("Swipped", "Swipped Right"); } prevPage = position; } 
Intereting Posts
Android Studio: сборка Gradle не выполняется – выполнение выполнено для задачи: compileDebugAidl ' Как очистить уведомление о тревоге на панели состояния – андроид Запись видео в формате Android с ограничением продолжительности и низким качеством Ошибка: выполнение выполнено для задачи ': app: packageDebug'. > Com.android.builder.packaging.PackagerException Как увеличить пространство между элементами в linearlayout в android? Как установить только числовое значение для EditTextPreference в android? Как показать несколько маркеров в MapFragment в Google Map API v2? Обнаружить, что активность закрыта в Android Почему в пакете ADT 20140702 отсутствует фрагмент_файла.xml? Styling AppCompatButton в v21 не имеет тени и углового радиуса нуля Android-эмулятор не будет закрыт Служба Android еще жива даже после вызова onDestroy ()? OnMeasure пользовательский просмотр пояснение Android получает слишком много отладочных данных Bluetooth Java vs Objective C в случае исключения nullpointer