如何在控件到达某个位置时禁用ViewPager中的左侧滑动

时间:2014-04-30 12:14:03

标签: android android-viewpager

我使用的是ViewPager,它有两个页面,正在重复使用。我拥有的总数是156页。我想禁用第2页的左侧滑动。 请帮帮我,谢谢,

这是我的代码..

public class SlidePagerActivity extends FragmentActivity{
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mPager = (ViewPager) findViewById(R.id.pager);
    mPager.setOnPageChangeListener(new ViewPageChangeListener(){
        // set current slide index
                AbcController.getInstance().getSlideController().setCurrentSlide(_nNextSlideIndex);
                // set Current Cycle Index
                AbcController.getInstance().getSlideController().setCurrentCycle(_nNextSlideCycle);

                // set pager index
                _mPager_in.setCurrentItem(_nNextSlideIndex);
});
}
}

2 个答案:

答案 0 :(得分:0)

我想阻止用户刷回上一页,但不希望页面不会消失(如果某些条件得到满足,则允许他向后滑动)。

我最后使用OnPageChangeListener:

viewPager.addOnPageChangeListener(new OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        }

        @Override
        public void onPageSelected(int position) {
            if(position < pageActuelle) {
                viewPager.setCurrentItem( pageActuelle );
                return;
            }

            pageActuelle = position;
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });    
}

现在我强迫用户在向左滑动时返回当前页面。这个解决方案真的适应了我的问题,因为我可以在用户尝试向后滑动时显示Toast。

希望它可以帮助别人。

答案 1 :(得分:-1)

您能详细说明您的问题吗? 您可以随时删除特定位置之前的所有页面,在这种情况下,也无需刷卡。 (对不起评论)