社区
Android
帖子详情
如何重写onInterceptTouchEvent, 拦截水平滚动
flyonthemoon
2011-09-21 03:59:11
程序结构是这样的:外层ViewGroup负责水平滚动,内层ScrollView负责垂直滚动。我想实现的效果是:水平滚动优先于垂直滚动,某种方向滚动开始,另一种滚动就不会发生。如何重写ViewGroup的onInterceptTouchEvent让水平滚动被拦截而不传至子View?
...全文
260
3
打赏
收藏
如何重写onInterceptTouchEvent, 拦截水平滚动
程序结构是这样的:外层ViewGroup负责水平滚动,内层ScrollView负责垂直滚动。我想实现的效果是:水平滚动优先于垂直滚动,某种方向滚动开始,另一种滚动就不会发生。如何重写ViewGroup的onInterceptTouchEvent让水平滚动被拦截而不传至子View?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wdy0725
2011-09-21
打赏
举报
回复
这就要看你的想要的效果了。
如果“水平滚动优先于垂直滚动”,那么你可以判断如果水平流动至端点,返回false,否则返回true.
flyonthemoon
2011-09-21
打赏
举报
回复
直接返回true,子View的点击事件就全部接收不到,而且也不会发生垂直滚动了
wdy0725
2011-09-21
打赏
举报
回复
返回true
点击事件的
拦截
处理滑动冲突
作为android开发人员,你一定遇到过滑动冲突问题,比如...而我们的需求是要求在操作
水平
控件的时候,其父容器不作出任何反应,也就是说,父容器不对点击事件做出
拦截
。那么怎么实现这个呢?在这里给大家提供两种方法,
View的事件分发机制与滑动冲突的解决
外部
拦截
法需要
重写
父容器的 on
Intercept
Touch
Event
方法,在内部做相应的
拦截
即可,这种方法的伪代码如下所示: @Override public boolean on
Intercept
Touch
Event
(Motion
Event
ev) { boolean
intercept
ed ...
View子布局和父布局滑动冲突时的处理
当父布局和子布局的滑动发生逻辑冲突时,需要我们手动去判断该滑动... 使用方法:
重写
父容器的on
Intercept
Touch
Event
方法,在内部做相应的
拦截
,自己做逻辑判断,返回true表示
拦截
点击事件传递,也就是父容器需要进
一篇文章搞定《Android嵌套滑动》
外部与内部滑动方向不一致、外部与内部滑动方向一致、多种情况下的嵌套(电商首页)/外部
拦截
法、内部
拦截
法、现有API框架、NestedScrolling机制、ViewPage和RecyclerView、ScrollView嵌套ScrollView
使用外部
拦截
法处理滑动冲突
当有多个可以
滚动
的...这时候可以通过
重写
父容器的 on
Intercept
Touch
Event
来决定在什么情况下,父容器应该
拦截
触摸事件,从而解决滑动冲突,这种方法称为外部
拦截
法。外部
拦截
法的大致代码实现如下,具体实现的时候
Android
80,349
社区成员
91,287
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章