ViewPager 禁止向某个方向滑动 [英] ViewPager disable swiping to a certain direction

查看:8
本文介绍了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 禁止向某个方向滑动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆