在 Gingerbread 中实现拖放
Posted
技术标签:
【中文标题】在 Gingerbread 中实现拖放【英文标题】:Implement Drag & Drop in Gingerbread 【发布时间】:2012-02-06 20:19:10 【问题描述】:我需要知道如何在 android 中为 Gingerbread 版本实现拖放。据我所知,Gingerbread 默认不支持。
我编码的内容:一个ViewGroup
类来保存动态添加的孩子,每个孩子都应该在长按后
能够通过手指点击/移动来移动。为了解决这个问题,我有一个OnLongClickListener
附加到每个View
的孩子,我的ViewGroup
已经实现了onTouch()
方法来获取向下/向上/移动事件和方法onLongClick()
来响应长按每个孩子。
现在我的问题如下:我长按一个孩子,我可以移动它,可以通过ACTION_UP
事件结束动作。但是,我不能再长时间点击这个孩子了 - 有没有办法或图书馆可以处理这个问题?
我认为,我不需要真正的 D&D 库/函数,因为我只会在这个 ViewGroup
中订购一些图标 - 每个孩子都通过代码添加到 ViewGroup
,所以我没有真正的我认为是 DropTarget。
【问题讨论】:
我将问题修复如下: 1.) 让每个孩子都有一个新的 OnLongClickListener 实例,这样可以防止父母响应 LongClick 事件。 2.) 在 onTouch() 事件中返回正确的值(真/假) 【参考方案1】:This 示例可能会对您有所帮助。这个例子有一个完整的 3.0 之前的拖放框架。还有你要求的功能,默认为“拖动一个被丢弃的孩子”。
【讨论】:
【参考方案2】:查看https://github.com/thquinn/DraggableGridView 的项目。这段代码真的帮了我很大的忙。
关注DraggableGridView
类中的onLayout()
和onTouch()
。让我知道这是否有帮助。在ViewGroup
和添加视图方面,这与您的情况非常相似。
【讨论】:
以上是关于在 Gingerbread 中实现拖放的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法在 phonegap angular js 项目中实现拖放?