问题描述
我想禁用滑动,但仅限于右侧.我在 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 禁止向某个方向滑动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!