按下时ViewPager滑动问题

时间:2016-07-06 10:53:22

标签: android android-viewpager

这里我试图移动到查看寻呼机最后位置的下一个屏幕..它的移动。但是当我尝试从最后一个位置向后滑动时,它移动到下一个屏幕。我需要移动到下一个屏幕仅在最后位置查看寻呼机时。

   _ <- if(updated != data) Future(saveUpdates(updated)) else Future.successful(())
   _ <- if(updated != data) ...

2 个答案:

答案 0 :(得分:1)

这个答案是你的viewpager当你看到最后一个位置然后再次向前滑动它会转到下一个Activity。  ViewPager.OnPageChangeListener pagerListener = new ViewPager.OnPageChangeListener(){                     boolean lastPageChange = false;

                @Override
                public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                    int lastIdx = book_adapt.getCount() - 1;

                    Log.d("Testing", "pos:" + position);
                    if (lastPageChange && position == lastIdx){
                        Intent main = new Intent(Top3.this, SkipActivity.class);
                        startActivity(main);
                        finish();
                    }

                }

                @Override
                public void onPageSelected(int position) {
                    // pgText.setCurrentItem(i/2);
                    viewPagerSet(position);
                }

                @Override
                public void onPageScrollStateChanged(int state) {
                    int lastIdx = book_adapt.getCount() - 1;

                    int curItem = viewPager.getCurrentItem();
                    if (curItem == lastIdx /*&& lastPos==lastIdx*/ && state == 1)
                        lastPageChange = true;
                    else lastPageChange = false;
                }
            };

            viewPager.addOnPageChangeListener(pagerListener);

答案 1 :(得分:0)

请尝试从 viewPager.getAdapter()中删除1。getCount()

我认为发生以下事情 - 假设您在 viewPager 中有5个标签。你在最后一个标签。你向后滑动, viewPager.getCurrentItem()将返回4.同时你有 viewPager.getAdapter()。getCount() - 1 ,它将再次返回4( 5个标签 - 1)。 if 语句中的条件将始终为 True ,因此将加载新活动。