obiwong
2011-05-09 00:25:51 +08:00
同一时刻android只能有一个view能接受输入,但你要的是将输入「同时」分发到两个view:一个GestureOverlayView,另一个ListView。换一种理解是GestureOverlayView收到输入事件处理完后不丢弃,继续将事件传递给Listview。按照这个思路,设置GestureOverlayView的OnTouchListener, 让它再调用Listview的onTouch方法并返回false就行了。
Layout大概是:
<FrameLayout xmlns:android=... layout_w="fill_p" layout_h="fill_p">
<ListView layout_w="fill_p" layout_h="fill_p"/>
<android.gesture.GestureOverlayView layout_w="f_p" layout_h="f_p"/>
</FrameLayout>
Activity.onCreate代码大概是:
GestureOverlayView gov;
gov.setOnTouchListener(new OnTouchListener() {
onTouch(MotionEvent me) {
list.onTouchEvent(me);
return false;
}}