viewpager2滚动导致滑动到顶部问题

项目集成了AndroidX后,修改了轮播图,自定义viewpager2,使用时发现在部分手机上viewpager2滚动导致页面自动滑动到顶部问题。

由于以前遇到过自定义viewpager轮播图焦点问题引起类似bug,但是哪个只是略微有点偏移,并不会引起滚动,不过首先尝试了使用去焦点,setfacus...等一系列方法,失败...
经过反复查找查找到一个属性应该可以使用android:descendantFocusability
这个属性有三个值可以使用
                     beforeDescendants:父布局会优先子布局获取焦点

                     afterDescendants: 只有当子布局不需要获取焦点时,父布局才会获取焦点

                     blocksDescendants:覆盖子布局直接由父布局获取焦点

最终选择以代码形式mViewPager2.setDescendantFocusability(FOCUS_BLOCK_DESCENDANTS);
成功解决该问题,下面是几个属性的翻译

/ * *

*这个视图会在它的任何后代视图之前得到焦点。

* /

public static final int FOCUS_BEFORE_DESCENDANTS = 0x20000;

/ * *

*只有当没有后代想要它时,这个视图才会得到焦点。

* /

public static final int FOCUS_AFTER_DESCENDANTS = 0x40000;

/ * *

*这个视图甚至会阻止它的后代获得焦点

*如果他们是可聚焦的。

* /

public static final int FOCUS_BLOCK_DESCENDANTS = 0x60000;

你可能感兴趣的:(viewpager2滚动导致滑动到顶部问题)