这里我试图移动到查看寻呼机最后位置的下一个屏幕..它的移动。但是当我尝试从最后一个位置向后滑动时,它移动到下一个屏幕。我需要移动到下一个屏幕仅在最后位置查看寻呼机时。
_ <- if(updated != data) Future(saveUpdates(updated)) else Future.successful(())
_ <- if(updated != data) ...
答案 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 ,因此将加载新活动。