【问题标题】:How to disable Specific Page Swipe in ViewPager如何在 ViewPager 中禁用特定页面滑动
【发布时间】:2015-02-06 07:32:46
【问题描述】:

我的应用中有一个 ViewPager 小部件,其中包含 5 个片段。我有 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);

【问题讨论】:

    标签: android android-fragments android-viewpager swipe


    【解决方案1】:

    请关注此问题,以便能够禁用随意滑动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 并在那里管理您的逻辑,将页面是否应该滑动或下一步该去哪里的问题委托给适配器。

    【讨论】:

    • 我能够在我的程序的那个链接中实现所需的东西。但是如果“特定页面&&”向右滑动“事件检查我无法实现。因为如果它是最后一次滑动可能的更改,我需要禁用向右滑动而不是向左滑动!
    • 你尝试了什么?在您的适配器中,您可以完全控制返回的页面。你可以添加你想要的所有行为。
    • 如何(或在哪里)检查向右滑动事件?在我的自定义类或存在 viewpager 的活动中?还有如何检查向右滑动事件?
    • 您可以在 onTouchEvent 上使用手势检测器,并使用 MotionEvent 输入它
    • 那个手势检测器将在 Activity 或 customPager 类中?另外,如果在活动中,它将用于活动覆盖还是 CustomViewPager variable.gesture bla bla?
    猜你喜欢
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    • 2018-04-30
    相关资源
    最近更新 更多