如何将选定的OnItemLongClick从一个ViewPager项拖到另一个

时间:2012-02-28 20:40:57

标签: java android android-fragments

所以我有一个带有条形片段(ListFragment)和团队片段(ListFragment)的FragmentPagerAdapter。当一个项目被长按时,我希望能够从团队选项卡中拖动它并将其放在条形图标签上以建立关系。这在理论上与主屏幕类似,如果我靠近边缘,我可以到达下一个屏幕。

更新

我使用3.0+或兼容性库。

我正试图拖动到另一个选项卡上,而不是在同一个选项卡中。

1 个答案:

答案 0 :(得分:2)

取决于您定位的级别。如果您的应用程序设计为在Android 3.0或更高版本上运行,则可以定位内置Drag and Drop API

如果您的应用需要定位我之前使用的早期版本this is a good open-source libraryGithub page),并尝试镜像针对2.0或更高版本的应用的内置API的功能。

在任何一种情况下,您都可以使用startDrag()回调中的onItemLongClick()开始拖动操作。

编辑:对不起有困惑

您必须以编程方式根据ViewPager数据执行DragEvent中的“标签”更改:

  1. 由于ViewPager只是支持库的一部分(并且没有向后移植),因此您可能必须将OnDragEventListener附加到其父ViewGroup。
  2. 您可以在ACTION_DRAG_LOCATION事件触发监听器时监控拖动位置。定义手指必须在收听视图的边缘内达到的合理阈值,当它到达时,请拨打setCurrentItem()上的ViewPager进行切换。
  3. 只要您在开始拖动时在视图层次结构中实例化了新选项卡(这由setOffscreenPageLimit()上的ViewPager控制),新页面上的视图也应该是放弃目标,因此他们应该能够收听ACTION_DROP事件。
  4. HTH