拖放listView:drop over listItem以便组合它们而不是排序

时间:2013-12-12 05:31:09

标签: android android-listview drag-and-drop

我想要一个可扩展的列表,我可以在其中拖动子项并将其放在其他父项列表项上,这将导致子项从一个父项移动到另一个父项。我只需要一个方向,我们如何在一般列表视图中实现这一点(更不用说exapandable)。可以使用示例来获取listitem以更改listview的顺序,即对该列表进行排序。如何完成放弃视图以对其进行分组。

1 个答案:

答案 0 :(得分:1)

您最好的选择是将您的精力放在自定义和制作自己的列表视图上,考虑扩展AdapterView,这将为您提供更多控制子显示和组织的能力,放置动画和拖放将更容易对于你在这种情况下,否则使用简单的列表视图它可能会工作,但我怀疑它是否会产生你想要的所需结果。

这是一个用于执行AdapterView和自定义的链接,通过它它将为您提供足够的指导以放入您的动画。我尝试了几乎相似的东西,并以同样的方式成功,不幸的是我没有实现代码与我。

http://developer.sonymobile.com/2010/05/20/android-tutorial-making-your-own-3d-list-part-1/

另外,使用列表视图尝试执行以下操作,

你的列表视图应该包含在framelayout中,你需要图层

  1. 为儿童启用绘图缓存,您寻找的coz动画需要使用位图

  2. 其次,当您触摸listview中的孩子时,获取孩子的位图,并在触摸孩子的相同坐标处充气,您可以轻松获得Child的位置。

  3. 现在是一些动画的时间,你可以拖放夸大的位图,现在当你移动它时,你需要做的第一件事是,将列表视图中的所有子项向上或向下移动取决于移动手指,你可以定义一些阈值,除非孩子的一半高度被移动,你不会在列表视图中向上或向下移动孩子。

  4. 移动孩子很容易,你需要做的就是将转化动画应用到列表视图中所有当前可见的孩子,使用childCount和ChildAt api作为相同的动画,并使用动画集一起播放它们。

  5. 当你通过移动孩子来建立空间时,用户会感觉像是拖放和移动,所有你需要的东西,当用户把它放在一个地方时,只需修改listview下面的数据集,根据最近的变化重新定位它按用户并刷新它,以便listview重新排序。