我使用ViewPager让用户左右翻转以在给定活动的页面之间导航。
是否可以以编程方式控制 ViewPager 的页面流?
例如:如果用户没有在当前页面上填写给定的 EditText,我不希望他能够导航到下一个。
另一种情况:如果用户当前在第 1 页,并且如果 hi 用特定值填充给定的 EditText 并且用户从右向左翻转,我希望他直接进入第 5 页而不是第 2 页。
我使用ViewPager让用户左右翻转以在给定活动的页面之间导航。
是否可以以编程方式控制 ViewPager 的页面流?
例如:如果用户没有在当前页面上填写给定的 EditText,我不希望他能够导航到下一个。
另一种情况:如果用户当前在第 1 页,并且如果 hi 用特定值填充给定的 EditText 并且用户从右向左翻转,我希望他直接进入第 5 页而不是第 2 页。
“翻转”是指用手指拖动还是仅使用 ViewPager 进行动画?
如果是前者,则必须动态编辑 ViewPager 的子项以获得所需的效果。您可以覆盖onInterceptTouchEvent()
以阻止触摸事件,直到页面完成。
但是,我建议在 ViewPager 中禁用手指拖动(可能使用onInterceptTouchEvent()
),然后使用setCurrentItem(4, true)
来显示动画并导航到特定页面。您需要的逻辑可以使用将调用的按钮来实现setCurrentItem(4, true)
。例如,您可以有一个灰色的“下一步->”按钮,除非表格完全完成。无论如何,这将比第一个选项更直观。
编辑: 4 就是您要切换到的任何子索引。