ViewPager 禁止向某个方向滑动

ViewPager disable swiping to a certain direction(ViewPager 禁止向某个方向滑动)
本文介绍了ViewPager 禁止向某个方向滑动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想禁用滑动,但仅限于右侧.我在 this 答案中找到了一个可行的解决方案.不幸的是,这复制了整个 ViewPager 源代码以实现目标.有没有只继承现有类而不重复的方法?

I want to disable the swiping, but only to the right side. I found a working solution in this answer. Unfortunately, this copies the whole ViewPager source to achieve the goal. Is there any methods just inheriting the existing class and not duplicating?

推荐答案

我不确定这是否正是您所需要的:我需要一个 viewpager 来创建一个具有用户无法通过的最大页面的向导.

I'm not sure this is exactly what you need: I needed a viewpager for a wizard with a max page that the user can't pass it.

最后解决方案在适配器中.我更改了 PagerAdapter 的计数,这样可以阻止用户传递最大页面:

At the end the solution was in the adapter. I changed the count of the PagerAdapter and this way blocks the user from passing the max page:

@Override
public int getCount() {
    return mProgress; //max page + 1
}

当用户进入下一页时:

private void setWizardProgress(int progress) {
    if(progress > mProgress) {
        mProgress = progress;
        mWizardPagerAdapter.notifyDataSetChanged();
    }
}

这样,当用户处于最大页面时,他无法向右滚动.

This way when the user is at max page he can't scroll to the right.

这篇关于ViewPager 禁止向某个方向滑动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

How to target newer versions in .gitlab-ci.yml using auto devops (java 11 instead of 8 and Android 31 instead of 29)(如何在.gitlab-ci.yml中使用自动开发工具(Java 11而不是8,Android 31而不是29)瞄准较新的版本)
Android + coreLibraryDesugaring: which Java 11 APIs can I expect to work?(Android+core LibraryDesugering:我可以期待哪些Java 11API能够工作?)
How to render something in an if statement React Native(如何在If语句中呈现某些内容Reaction Native)
How can I sync two flatList scroll position in react native(如何在本机Reaction中同步两个平面列表滚动位置)
Using Firebase Firestore in offline only mode(在仅脱机模式下使用Firebase FiRestore)
Crash on Google Play Pre-Launch Report: java.lang.NoSuchMethodError(Google Play发布前崩溃报告:java.lang.NoSuchMethodError)