博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android ScrollView滑动事件和子控件点击事件冲突
阅读量:6535 次
发布时间:2019-06-24

本文共 625 字,大约阅读时间需要 2 分钟。

hot3.png

问题描述:

父控件是一个ScrollView,然后上面排满了按钮,类似于支付宝

132054_C7aL_2276921.png

这样,按钮都有onclick事件,这样滑动的时候如果接触点在按钮上,ScrollView就滑不动了。

解决方案是重写ScrollView 的onInterceptTouchEvent方法:

public class PersonScrollView extends ScrollView{    public PersonScrollView(Context context) {        super(context);    }    @Override    public boolean onInterceptTouchEvent(MotionEvent ev) {        if (ev.getAction() == MotionEvent.ACTION_MOVE) {                return true;        }        return false;    }}

原理很简单,就是事件在响应链里面是一直传递到叶子控件才进行处理,而在我的这个场景里,触点在按钮上的时候事件的叶子节点就是按钮,所以ScrollView不会响应滑动事件,解决思路就是在滑动事件传递到ScrollView的时候就进行拦截响应,不再往下传递。

转载于:https://my.oschina.net/u/2276921/blog/811565

你可能感兴趣的文章
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
查看>>
linux清除svn密码
查看>>
使用redis计数器防止并发请求
查看>>
习题10.25
查看>>
有关sqlite与sql
查看>>
MapXtreme 2005 学习心得 概述(一)
查看>>
php进一法取整、四舍五入取整、忽略小数等的取整数方法大全
查看>>
Hibernate的拦截器和监听器
查看>>
游戏中学习Bash技能
查看>>
ubuntu 12.04系统托盘不显示ibus输入法图标的解决方法
查看>>
垂直分区和水平分区
查看>>
Tomcat LimitLatch
查看>>
WSDP
查看>>
Angularjs checkbox ng-true-value不支持中文
查看>>
Memory Management
查看>>
The Packaging Process in Yocto/OE
查看>>
golang--Redis最佳的Go语言驱动
查看>>
unix编程之socket编程系列之 简单的tcp和udp编程(二)
查看>>
sqlite3简单操作1
查看>>
jQuery 插件开发全解析
查看>>