如何在额外的DialogFragment中处理DragEvent

问题描述

当我对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 (将#修改为@)