美文网首页ViewPager or Recyclerview
viewpager2滚动导致滑动到顶部问题

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

作者: Condor_c33a | 来源:发表于2021-03-03 11:03 被阅读0次

    项目集成了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滚动导致滑动到顶部问题

        本文链接:https://www.haomeiwen.com/subject/bphqqltx.html