V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
westlinkin
V2EX  ›  Android

关于android的手势识别

  •  
  •   westlinkin · 2011-05-08 15:16:38 +08:00 · 7142 次点击
    这是一个创建于 4731 天前的主题,其中的信息可能已经有所发展或是发生改变。
    android有两种手势识别方式:一类是触摸屏手势识别,另一类是输入法手势识别。两种方式我都可以分别实现,但是我想在一个应用中同时实现就不行了。

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

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

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

    问:该怎么样使两种手势识别方法同时有效,又不影响我应用程序数据的显示和操作。
    3 条回复    1970-01-01 08:00:00 +08:00
    obiwong
        1
    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
        2
    westlinkin  
    OP
       2011-05-09 10:25:41 +08:00
    @obiwong 这样对listview的单个项可以操作么?
    obiwong
        3
    obiwong  
       2011-05-09 21:21:58 +08:00
    @westlinkin 可以。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2690 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 12:31 · PVG 20:31 · LAX 05:31 · JFK 08:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.