Android开发中,如何有效解决ScrollView和ListView冲突

Original 2016-10-29 15:01:37 565
abstract:这个很常见,比如出门左转打开企鹅,QQ聊天记录列表,纵滑翻过不同好记录,横滑删除记录。但两者并不冲突。一句话概括核心思想:有一个方法,在当前view中获得ViewParent,并请求父容器(临时)不要拦截触摸事件,当某个触摸事件处理完后,再恢复父容器能拦截。这个方法是(需要自己在子View中实现):当然,接下来需要重写下listView中onTouchEvent()方法。举个例子:如果子View要

这个很常见,比如出门左转打开企鹅,QQ聊天记录列表,纵滑翻过不同好记录,横滑删除记录。但两者并不冲突。


一句话概括核心思想:有一个方法,在当前view中获得ViewParent,并请求父容器(临时)不要拦截触摸事件,当某个触摸事件处理完后,再恢复父容器能拦截。

这个方法是(需要自己在子View中实现):

1673853169-57d9315027513_articlex.jpg

当然,接下来需要重写下listView中onTouchEvent()方法。

举个例子:如果子View要检测横滑,父容器检测纵滑,很分裂对吧?

解决方案是:

当子容器检测到横滑的时候,禁止本该要竖滑的父容器,等子容器的横滑事件结束,再恢复回来即可(反过来也成立)。




Release Notes

Popular Entries