Автоматическая прокрутка в PageViewer

1

У меня проблема с pageviewer. Я хочу, чтобы моя страница прокручивалась каждые две секунды. Я пробую что-то вроде этого:

handler.postDelayed(new Runnable() {
    public void run() {

        viewPager.setCurrentItem(viewPager.getCurrentItem()+1, true);

    } 
},2000);

Но он работает только тогда, когда я начинаю деятельность. Если я поместил этот код в public void onPageSelected(int page) он будет работать, но я хочу сделать, когда я нажимаю и public void onPageSelected(int page) вручную, я хочу остановить этот обработчик, но он не работает. Как я могу это сделать?

Теги:

1 ответ

10
Лучший ответ

Вы должны определить свой Runnable и Handler следующим образом:

private boolean pagerMoved = false;
private static final long ANIM_VIEWPAGER_DELAY = 2000;

private Handler h = new Handler();
    private Runnable animateViewPager = new Runnable() {
        public void run() {
            if (!pagerMoved) {
                viewPager.setCurrentItem(viewPager.getCurrentItem()+1, true);
                h.postDelayed(animationFrame, ANIM_VIEWPAGER_DELAY);
            }
        }
    };

Убедитесь, что вы настраиваете и сбрасываете свои методы onPause & onResume

@Override
    public void onPause() {
        super.onPause();
        if (h != null) {
            h.removeCallbacks(animateViewPager);
        }
    }

    @Override
    public void onResume() {
        super.onResume();
        h.postDelayed(animateViewPager, ANIM_VIEWPAGER_DELAY);
    }

Наконец, вам нужно будет прослушать событие касания на вашем представлении, чтобы вы могли установить pagerMoved в true (который затем остановит дальнейшие автоматические переходы страницы).

  • 0
    Могу ли я замедлить скольжение изображения, потому что когда я провожу пальцем, он выглядит великолепно, но когда я использую этот способ, это слишком быстро. Я хотел бы видеть эту анимацию, когда первая фотография смахивает на вторую. Это возможно?
  • 2
    Да, это возможно, вам нужно посмотреть на методы fakePageDrag на ViewPager
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню