解决Drag and drop is not supported导致无法将物理机上的文件拖入Ubuntu

问题起因

因为需要拷贝一个文件从物理机到虚拟机,但是我又不想用有关ftp的程序或者协议,但是直接拖又报错Drag and drop is not supported,索性上网查询了一下解决方法,自己记录一下。

解决方法

安装下面两个程序

sudo apt install gnome-shell-extension-pref
sudo apt install nemo

打开Ubuntu的application的extensions把Desktop iconsNG关闭
在这里插入图片描述
在这里插入图片描述
然后application选择startup application preference
在这里插入图片描述
新建一个
在这里插入图片描述

参考

https://blog.csdn.net/qq_33583069/article/details/126429833

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现这个功能,你需要实现以下几个步骤: 1. 在 Recycleview 的 item layout 中添加一个可接受拖放的 View。 2. 在外部 View 上注册一个拖放监听器。 3. 在拖放监听器中实现 onDrag() 方法,用于创建一个拖放阴影,并将其与拖放事件绑定。 4. 在 onDrag() 方法中,你需要将拖放事件传递给 Recycleview 的 ItemTouchHelper 对象。 5. 在 ItemTouchHelper.Callback 的实现中,你需要实现 onMove() 方法,将外部 View 拖放到 Recycleview 中的指定位置,并更新数据集合。 6. 最后,你需要调用 notifyItemInserted() 方法来刷新 Recycleview 的显示。 下面是一个大致的实现方案: ``` class MyAdapter extends RecyclerView.Adapter<MyViewHolder> implements ItemTouchHelper.Callback { List<Item> mData; // ... @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // 创建 ViewHolder 对象,并将其绑定到一个 item layout 上。 View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false); // 在 item layout 中添加一个可接受拖放的 View。 View dropView = itemView.findViewById(R.id.drop_view); // 注册拖放监听器。 dropView.setOnDragListener(new MyDragListener()); return new MyViewHolder(itemView); } @Override public void onBindViewHolder(MyViewHolder holder, int position) { // 将数据绑定到 ViewHolder 上。 } // ... @Override public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { // 将外部 View 拖放到 Recycleview 中的指定位置,并更新数据集合。 int fromPosition = viewHolder.getAdapterPosition(); int toPosition = target.getAdapterPosition(); Collections.swap(mData, fromPosition, toPosition); // 刷新 Recycleview 的显示。 notifyItemMoved(fromPosition, toPosition); return true; } // ... } class MyDragListener implements View.OnDragListener { @Override public boolean onDrag(View v, DragEvent event) { // 创建一个拖放阴影,并将其与拖放事件绑定。 View shadowView = v; ClipData clipData = ClipData.newPlainText("", ""); View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(shadowView); v.startDrag(clipData, shadowBuilder, v, 0); // 将拖放事件传递给 ItemTouchHelper 对象。 ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new MyAdapter()); itemTouchHelper.startDrag(event); return true; } } ``` 需要注意的是,以上代码仅供参考,具体实现方式可能会因为业务需求而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值