关于android的手势识别

2011-05-08 15:16:38 +08:00
 westlinkin
android有两种手势识别方式:一类是触摸屏手势识别,另一类是输入法手势识别。两种方式我都可以分别实现,但是我想在一个应用中同时实现就不行了。

触摸屏方式我所实现的是左右滑动切换activity,是在一个listview上监听的,数据的显示也在listview上

输入法手势识别需要一个GestureOverlayView,在这个控件上绘制图形。由用户自定义手势功能

也不能用以个FrameLayout,将两种控件重叠显示。

问:该怎么样使两种手势识别方法同时有效,又不影响我应用程序数据的显示和操作。
11233 次点击
所在节点    Android
3 条回复
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;
}}
westlinkin
2011-05-09 10:25:41 +08:00
@obiwong 这样对listview的单个项可以操作么?
obiwong
2011-05-09 21:21:58 +08:00
@westlinkin 可以。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/12724

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX