问题描述
当我对RecyclerView的某个项目执行longClick时,我想开始拖动该项目并启动自定义DialogFragment。然后,我想将此项目拖放到DialogFragment内的CardView中。如果重要的话,在Fragment中有一个以gridLayout为父级的CardViews会有所不同。 创建片段并拖动Item效果很好,但是我找不到使片段响应DragEvents的方法。 我已经尝试过在片段的onCreateView()和onStart()方法中设置OnDragListener,但是它不会响应DragEvents。我还阅读了关于拖放的android开发人员指南,但是没有有关拖动到另一个片段的信息。 由于无法在基础活动中访问片段的视图,因此我将OnLongClickListener实现为匿名内部类,因此有什么方法可以获取我想要实现的功能?还是我在看不见的代码中犯了任何错误?
这是我的onLongItemClick方法:
text-center
这是片段的onCreateView()/ onStart方法中的onDragListener方法
public void onLongItemClick(View itemView,FoodItem foodItem) {
// itemView is the View of the longClicked item in the recyclerView
// custom DialogFragment
PopUpOnLongFoodItemClick dragDialog = new PopUpOnLongFoodItemClick(foodItem,foodItemviewmodel);
dragDialog.show(getSupportFragmentManager(),"dragDialogFragment");
ClipData.Item item = new ClipData.Item("notUsedTag");
ClipData dragData = new ClipData("notUsedTag",new String[] {ClipDescription.MIMETYPE_TEXT_PLAIN},item);
View.DragShadowBuilder dragShadowBuilder = new View.DragShadowBuilder(itemView);
itemView.startDrag(dragData,dragShadowBuilder,null,0);
}
});
如果需要任何其他信息,我当然会很乐意提供
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)