您好我使用drag'n下降選項而言,我採用了android工作室3 & SDK 26 當我到觸摸事件中,我得到錯誤信息寫一個應用程序: java.lang.ClassCastException :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版本= 「1.0」 編碼= 「UTF-8」?> –
其相對佈局... –
好吧,我認爲在這種情況下觸摸傳播到你認爲的孩子。如果您對特定視圖內的觸摸感興趣,也許應該在使用RelativeLayout.LayoutParams layoutParams之前添加一種測試。像if(view ==我specefic視圖)然後把其餘的代碼。 – Jaja