ScrollView想要OnTouch你,真的不容易。

        一直认为ScrollView很方便也很简单,OnTouch很方便也很简单,所以一直“简单”的用,知道有一天需要将二者结合使用时发现这“两家”还有点“水火不容”。

二者的主要矛盾是谁处理“触摸事件”。

比如下面的简单情形中:

(由于用手机编写,所以只能用文字进行描述)在scrollview中包含一个relativalayout,在新建布局中包含一个textview。现状:直接在textview上使用ontouch,结果scrollview能用,ontouch不能用。

解决方法:在ontouch的DOWN事件中,先禁止scrollview的touch事件,然后在UP事件中允许scrollview的touch事件。

在DOWN中添加 getParent().requestDisallowInterceptTouchEvent(true);//屏蔽父控件拦截onTouch事件

在UP中添加 getParent().requestDisallowInterceptTouchEvent(false);//取消屏蔽父控件拦截onTouch事件

这样就可以在scrollview中使用ontouch了。

你可能感兴趣的:(android,基础)