如何在Android RelativeLayout中拖放视图

kra*_*moe 3 android drag-and-drop android-layout

我制作了自己的拖放功能.

我想用a做这个RelativeLayout,但这似乎不能很好地工作.在开始时,我可以告诉每个人View我想通过将它设置在View之前的位置来拖动它应该在哪个位置.

但是当我想拖动一个视图时,它下面的所有其他视图也会被移动,因为它们想要保持我设置它们的顺序.

但是我可以使用其他布局吗?我必须在不同的屏幕尺寸上使用这种拖放功能,所以我不能给它们固定xy值.

Ari*_*eem 8

我前面遇到同样的问题,如果你不想拖动其他视图(在视图的下方或上方或旁边)以及被拖动的视图,那么使用ViewGroup.LayoutParams而不是RelativeLayout.LayoutParams,如果按Ctrl-Shift导入后者-O,所以手动将其更改为前者.

编辑:既然你想要我如何实现它的描述,这是实际的代码

 MarginLayoutParams marginParams = new MarginLayoutParams(image.getLayoutParams());              
 int left = (int) event.getRawX() - (v.getWidth() / 2);
 int top = (int) event.getRawY() - (v.getHeight());
 marginParams.setMargins(left, top, 0, 0);
 RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(marginParams);
 image.setLayoutParams(layoutParams);  
Run Code Online (Sandbox Code Playgroud)

我不得不做很多研究才能达到同样的目的,我花了两天时间才发现一个名为MarginLayoutParams的东西存在......

确保你有

import android.view.ViewGroup.LayoutParams;
import android.view.ViewGroup.MarginLayoutParams;
Run Code Online (Sandbox Code Playgroud)

作为你的进口而不是RelativeLayout.LayoutParams.

还要确保你将marginparams投射到你的相对布局中祝你好运...