ViewPager2事件冲突问题

Android2022年9月10日 am8:08发布1年前 (2023)更新 3xcn.com@站长
1 0 0
广告也精彩
目录

前言

项目中用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是否需要事件,如果需要事件,就不允许父类拦截,否则就让父类自行处理。

隐藏内容!
付费阅读后才能查看!
3
多个隐藏块只需支付一次

参考文章

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

 历史上的今天

版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站文章: 部分来源于网络,仅供站长学习和参考,若侵权请留言
广告也精彩

相关文章

广告也精彩

暂无评论

评论审核已启用。您的评论可能需要一段时间后才能被显示。

暂无评论...

网站升级中

公告

近期网站升级中,可能存在一些bug。欢迎反馈 https://www.91es.com/we.html

本站域名

本站域名 : 91es.com3xcn.com。本站邮箱 : 站长邮箱 i@oorr.cn,通知邮箱we@oorr.cn ,如有更新,请看公告 。