假设:
活动 1 包含一些将被拖动
的项目活动 2 包含一些"框",这些"框"将填充活动 1 的项目。这些框已经有拖动侦听器。
我想将项目从活动 1 拖到活动 2
中我尝试了这些方法:
- 我在活动 1 项上实现
onLongClickListener()
并在那里使用startDrag()
。然后我打开活动 2。我可以使拖动阴影出现,但框无法接收项目。事实上,他们不回应任何DragEvent
. - 我对活动 1 项实现
onLongClickListener()
,但只是将数据传递到活动 2。然后我在 Activity2 启动时使用startDrag()
(特别是在onResume()
中(。在这里,阴影没有出现,盒子也没有响应任何DragEvent
。
有什么办法使这成为可能吗?
可以使用
两个视图寻呼机片段而不是2个活动,您可以在onTouch((或dispatchTouch((中设置拖放逻辑。
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
return super.dispatchTouchEvent(ev);
}
在片段的活动中使用 dispatchTouch(( 或
viewPager.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return false;
}
});
使用视图寻呼机的触摸事件,您可以在内部设置拖放逻辑。
我希望这个想法能帮助你。