我的应用中有一个包含5个片段的ViewPager小部件。我有3个按钮可以手动转到页面。对于4页和5页,我希望用户只能通过按下按钮而不能通过滑动。所以我需要通过它们禁用滑动事件,但不能禁用其他人。同样在第4页或第5页中,滑动将完全禁用,后退按钮将出现在操作栏上。如何实现呢?
List<Fragment> l = new ArrayList<>();
l.add(Fragment.instantiate(this, Osman.class.getName()));
l.add(Fragment.instantiate(this,Ahmet.class.getName()));
l.add(Fragment.instantiate(this,Kurik.class.getName()));
l.add(Fragment.instantiate(this,Sorok.class.getName()));
l.add(Fragment.instantiate(this,Yah.class.getName()));
SliderAdapter sa = new SliderAdapter(getSupportFragmentManager(),l);
vp = (ViewPager) findViewById(R.id.viewPager);
vp.setAdapter(sa);
答案 0 :(得分:2)
请关注此问题,以便能够随意禁用滑动How do disable paging by swiping with finger in ViewPager but still be able to swipe programmatically?
并将其与SliderAdapter结合使用,以控制哪些页面可以刷卡。
如果您按照上面的链接,在ViewPager的子类上,您可以在onTouchEvent(MotionEvent event)
上添加一些GestureDetector并将其与您的活动一起提供,例如Android: How to handle right to left swipe gestures
通过执行此操作,您现在将拥有一些onSwipeRight并管理您的逻辑,如果页面应该被刷卡,或者下一步去哪里,请向适配器委派问题。