所以我有一个带有条形片段(ListFragment)和团队片段(ListFragment)的FragmentPagerAdapter。当一个项目被长按时,我希望能够从团队选项卡中拖动它并将其放在条形图标签上以建立关系。这在理论上与主屏幕类似,如果我靠近边缘,我可以到达下一个屏幕。
更新
我使用3.0+或兼容性库。
我正试图拖动到另一个选项卡上,而不是在同一个选项卡中。
答案 0 :(得分:2)
取决于您定位的级别。如果您的应用程序设计为在Android 3.0或更高版本上运行,则可以定位内置Drag and Drop API。
如果您的应用需要定位我之前使用的早期版本this is a good open-source library(Github page),并尝试镜像针对2.0或更高版本的应用的内置API的功能。
在任何一种情况下,您都可以使用startDrag()
回调中的onItemLongClick()
开始拖动操作。
编辑:对不起有困惑
您必须以编程方式根据ViewPager
数据执行DragEvent
中的“标签”更改:
ViewPager
只是支持库的一部分(并且没有向后移植),因此您可能必须将OnDragEventListener
附加到其父ViewGroup。ACTION_DRAG_LOCATION
事件触发监听器时监控拖动位置。定义手指必须在收听视图的边缘内达到的合理阈值,当它到达时,请拨打setCurrentItem()
上的ViewPager
进行切换。setOffscreenPageLimit()
上的ViewPager
控制),新页面上的视图也应该是放弃目标,因此他们应该能够收听ACTION_DROP
事件。HTH