作者:没有结局的梦z最痛 | 来源:互联网 | 2023-05-19 17:11
在一些特殊界面的设计里面,使用ScrollView嵌套ListView的情况还是比较常见的。由于ScrollView和ListView都有对滑动事件的监听和处理,所以两者嵌套肯定会存在
在一些特殊界面的设计里面,使用ScrollView嵌套ListView的情况还是比较常见的。由于ScrollView和ListView都有对滑动事件的监听和处理,所以两者嵌套肯定会存在滑动冲突的问题。我们知道Android事件是根据“冒泡”机制层层传递的,既从父View到子View层层处理,因此我们思考从ListView的“View父”ScrollView进行冲突处理。
从网上查阅资料和对ScrollView的源码分析,找到了ViewGroup里面有个方法requestDisallowInterceptTouchEvent,通过此方法可以阻止父层的View截获touch事件。也就是当我们设置ScrollView.requestDisallowInterceptTouchEvent(true),ScrollView不会拦截touch事件,并将其交由ListView处理,这正是我们想要的。
关键代码在下面......