如何在 ViewPager 中禁用特定页面滑动
How to disable Specific Page Swipe in ViewPager
我的应用程序中有一个包含 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);
关注这个问题,以便能够随意禁用滑动How do disable paging by swiping with finger in ViewPager but still be able to swipe programmatically?
并将其与您的 SliderAdapter 相结合,以控制哪些页面可滑动。
如果您按照上面的 link 操作,在您的 ViewPager 子类中,您可以在 onTouchEvent(MotionEvent event)
上添加一些 GestureDetector 并将其与您的事件一起提供,例如 Android: How to handle right to left swipe gestures
通过这样做,您现在将拥有一些 onSwipeRight 并在那里管理您的逻辑,将是否应滑动页面或下一步去向的问题委托给适配器。
我的应用程序中有一个包含 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);
关注这个问题,以便能够随意禁用滑动How do disable paging by swiping with finger in ViewPager but still be able to swipe programmatically?
并将其与您的 SliderAdapter 相结合,以控制哪些页面可滑动。
如果您按照上面的 link 操作,在您的 ViewPager 子类中,您可以在 onTouchEvent(MotionEvent event)
上添加一些 GestureDetector 并将其与您的事件一起提供,例如 Android: How to handle right to left swipe gestures
通过这样做,您现在将拥有一些 onSwipeRight 并在那里管理您的逻辑,将是否应滑动页面或下一步去向的问题委托给适配器。