设为首页 加入收藏

TOP

Android上拖放效果的实现
2014-11-24 12:42:37 来源: 作者: 【 】 浏览:0
Tags:Android 效果 实现

在Android上,触摸事件由一系列事件构成。首先,用户将手指放在屏幕的一个元素上,该元素接收到一个ACTION_DOWN事件。然后,用户保持手指在屏幕上,将手指移动到一个新的位置。该元素接收到一系列ACTION_MOVE事件。最后,用户拿起手指,这时,该元素接收到一个ACTION_UP事件。


Android上的touch事件有两个重要的特点:一.touch事件会被转移。如果一个子控件在它的onTouchEvent句柄中返回false,它将忽略第一个事件(ACTION_DOWN),而父级的onTouchEvent举办将接收此事件,除非其中一个祖先控件同意处理该事件或者是事件到达根控件,不然这个激活的事件将一直被传播;二.父级可以在子控件的onTouchEvent句柄被激活前拦截触摸事件。可以通过重载父级的onInterceptTouchEvent方法,并返回true来实现这点。结果是,子控件的onTouchEvent句柄将被忽略,而父级的onTouchEvent将被激活。


下图表示touch事件转移的过程:


我们需要在父级和子级控件中设置onTouchEvent句柄。在子级句柄中,我们将子元素保存为将被拖动的项,并返回false,这样一系列的子事件将被传达到父级句柄。在父级句柄中,我们改变子视图的边来适应手指的位置,这样子视图就可以跟随我们的手指移动了。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android使用工具每天心情(附源代.. 下一篇让Qt应用程序跑在Android上

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·常用meta整理 | 菜鸟 (2025-12-25 01:21:52)
·SQL HAVING 子句:深 (2025-12-25 01:21:47)
·SQL CREATE INDEX 语 (2025-12-25 01:21:45)
·Shell 传递参数 (2025-12-25 00:50:45)
·Linux echo 命令 - (2025-12-25 00:50:43)