ViewPager2事件冲突问题

125啦读书导航,我的单页导航

前言

项目中用ViewPager2+Fragment替换ViewPager+Fragment做图片浏览功能,替换完后发现ViewPager2和Fragment中存在事件冲突,比如Fragment存在对图片进双指缩放等处理。

因此,需要我们自己处理冲突事件。

正文

思路:
  1. 重写mAnimViewPager的[父控件]的dispatchTouchEvent事件
  2. 触摸down时不让[父控件]拦截,优先[子控件]处理
  3. 判断是否左右滑动,让[父控件]处理,[父控件]会根据自身情况判断是否拦截事件
  4. 触摸up时恢复默认

PS: 不过,这种方式还是存在偶尔不灵敏

优先不让父控件拦截,先让子控件先处理可以通过如下属性设置

//不允许mAnimViewPager[父控件]拦截事件
mAnimViewPager.requestDisallowInterceptTouchEvent(true);

//mAnimViewPager[父控件]会根据自身情况判断是否拦截事件
mAnimViewPager.requestDisallowInterceptTouchEvent(false);

ViewPager2+Fragment的冲突也是,判读是否Fragment是否需要事件,如果需要事件,就不允许父类拦截,否则就让父类自行处理。

125la.com是个人的自由部落

本文为私人笔记,如需查阅,请-->【打赏】+【留言】

三思,打赏后不可退款,但会尽可能帮忙解答

留言的邮箱一定要对!谢谢

PS:常被采集或暴力破解致服务器卡死,只好限制部分内容访问

125la.com 个人自定义导航主页,欢迎你的使用^_^

参考文章

  1. ViewPager2 与 ScrollView事件冲突解决 | 码农家园 (codenong.com)
  2. 这可能是ViewPager2滑动冲突最全处理方案 - 掘金 (juejin.cn)

125啦读书导航,我的单页导航
版权声明:125la.com站长 发表于 2022年9月10日 上午8:08。
转载请注明:ViewPager2事件冲突问题 | 125啦读书导航

相关文章

125啦读书导航,我的单页导航

暂无评论

暂无评论...