-1

私のログでは、現在の位置が同じ値に対して 2 回呼び出され、タイマーにほぼ 2 倍の時間がかかります。NUM_PAGES は、実際には配列リストの最大サイズを占めています。

    NUM_PAGES = detailsArrayList.size();

    // Auto start of viewpager
    final Handler handler = new Handler();
    final Runnable Update = new Runnable() {
        public void run() {
            if (currentPage == NUM_PAGES) {
                currentPage = 0;
            }
            Log.d(TAG, "Current Page: " + currentPage);
            mPager.setCurrentItem(currentPage++, false);
        }
    };
    final Timer swipeTimer = new Timer();
    swipeTimer.schedule(new TimerTask() {
        @Override
        public void run() {
            handler.post(Update);
        }
    }, 5000, 5000);

    // Pager listener over indicator
    indicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

        @Override
        public void onPageSelected(int position) {
            currentPage = position;
        }

        @Override
        public void onPageScrolled(int pos, float arg1, int arg2) {
        }

        @Override
        public void onPageScrollStateChanged(int pos) {
        }
    });
4

1 に答える 1