こんにちは、私は私が、私はエラーメッセージが表示されますタッチイベントを取得するとImはアンドロイドスタジオ3 & SDK 26 を使用して、ドロップオプションをドラッグ&使用してアプリを書いて失敗しました:android.widget.LinearLayout $ LayoutParamsキャストすることはできませんにandroid.widget.RelativeLayout $ LayoutParams コード厥:ドラッグ&ドロップ機能onTouchイベントは
private View.OnTouchListener OnTouchListener() {
return new View.OnTouchListener() {
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
final int x = (int) motionEvent.getRawX();
final int y = (int) motionEvent.getRawY();
switch (motionEvent.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams)
view.getLayoutParams();
xDelta = x - lParams.leftMargin;
yDelta = y - lParams.topMargin;
break;
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_MOVE:
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) view
.getLayoutParams();
layoutParams.leftMargin = x - xDelta;
layoutParams.topMargin = y - yDelta;
layoutParams.rightMargin = 0;
layoutParams.bottomMargin = 0;
view.setLayoutParams(layoutParams);
break;
}
mainlayout.invalidate();
return true;
}
};
}
私はいただきました!ここで間違って理解カント、私は前にそのコードを使用し、それが働きました。
の<?xml version = "1.0" エンコード= "UTF-8"?> –
相対レイアウト... –
申し訳ありません、この場合、タッチはあなたの見解の子供たち。特定のビュー内のタッチに興味がある場合は、RelativeLayout.LayoutParams layoutParamsを使用する前に一種のテストを追加する必要があります。 if(view == my specefic view)のようにして、残りのコードを入れてください。 – Jaja