关于ViewPager2 禁止用户滑动问题
正常方法
需求是不让上下滚动,理论上使用这个setUserInputEnabled就能解决,kotlin的话应该是isUserInputEnabled=false没记错的话
//不让他上下滚动了
viewPager2.setUserInputEnabled(false);
出现问题
当我这样设置时候,我师兄告知我依旧不行,我很是奇怪,因为在我的一样安卓版本的虚拟机下就是无法滑动,查询全网还是找不到原因。。。
最后点进源码发现注释里有这样一句话。
Disabling keyboard input is not yet supported. 意思:目前不支持禁止键盘输入。
/**
* Enable or disable user initiated scrolling. This includes touch input (scroll and fling
* gestures) and accessibility input. Disabling keyboard input is not yet supported. When user
* initiated scrolling is disabled, programmatic scrolls through {@link #setCurrentItem(int,
* boolean) setCurrentItem} still work. By default, user initiated scrolling is enabled.
*
* @param enabled {@code true} to allow user initiated scrolling, {@code false} to block user
* initiated scrolling
* @see #isUserInputEnabled()
*/
public void setUserInputEnabled(boolean enabled) {
mUserInputEnabled = enabled;
mAccessibilityProvider.onSetUserInputEnabled();
}
被动解决
猛然惊醒,会不会测试人员使用的鼠标滚轮或者键盘。。。
这告诫我们,就算是虚拟机也应该使用鼠标点击模拟人的操作!

本文探讨了在Android中使用ViewPager2组件时遇到的问题:如何有效地禁止用户通过触摸或键盘进行滑动操作。文中详细解释了一个常见方法 setUserInputEnabled 的使用,并指出了该方法存在的局限性,即无法阻止键盘输入导致的滚动。
2488

被折叠的 条评论
为什么被折叠?



