Frank-Zhu / PullZoomView

An Android custom ListView and ScrollView with pull to zoom-in.
Apache License 2.0
2.32k stars 623 forks source link

关于ZoomView触摸事件的拦截 #5

Closed DevotedTangLiu closed 9 years ago

DevotedTangLiu commented 10 years ago
   你好FranK-Zhu,首先非常感谢你提供的开源代码,我从中学习到不少东西。
   现在的情况是这样的,我使用了你的demo,但是遇到一个问题。我的zoomView(或者headView)是

一个地图(高德),在对zoomView进行滑动时,会被Listview拦截,页面上下滑动,但是我想要的是地图 相应这些滑动事件,比如两指放大缩小、上下移动...我尝试过给zoomView注册touchListener,并返回true 拦截事件,但是发现这样做没有得到想要的结果,给headView和mHeaderContainer注册ontouchListener 也是如此。 想请教下,这是神马原因?有没有解决的方法或是思路。 如果这个问题比较浅薄或者幼稚请见谅,我是新手。 谢谢。

Frank-Zhu commented 10 years ago

@devotedwife 你可以尝试一下在你的地图view中复写一下这个函数,看是否可以满足你的要求。

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        getParent().requestDisallowInterceptTouchEvent(true);//通知父窗口不要做任何事件拦截
       //此处处理你的缩放逻辑即可
        return true;
    }
DevotedTangLiu commented 10 years ago

@Frank-Zhu Thank you very much for your kindly help.
不过使用“通知父窗口不拦截”的方法暂时没有解决我的问题,可能是布局稍微复杂,分发触摸事件 的时候有冲突。 目前自己的解决方法是布局一个listview和一个包含地图的view,滑动时修改两个view的高度和margin 等布局来解决,不过太繁琐了,代码重用性也不好。有空再研究一下。 再次感谢。