しばらく前に同じ問題に直面しました。ドラッグされているビューと一緒に他のビュー(ビューの下または上または横)をドラッグしたくない場合は、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);
同じことを達成するために多くの調査をしなければならず、MarginLayoutParamsと呼ばれるものが存在することを理解するのに2日かかりました...
あなたが持っていることを確認してください
import android.view.ViewGroup.LayoutParams;
import android.view.ViewGroup.MarginLayoutParams;
あなたの輸入品としてではなくRelativeLayout.LayoutParams
。
また、marginparamsを相対レイアウトにキャストするようにしてください。幸運を祈ります...