我是 Android Studio 的新手,我只想拖动 TextView。但是,当我尝试获取RelativeLayout 的LayoutParams 时,我得到了一个我不使用的类(ContraintLayout) 的ClassCastException。
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView=findViewById(R.id.textView);
textView.setOnTouchListener(onTouchListener());
}
private View.OnTouchListener onTouchListener(){
return new View.OnTouchListener(){
@Override
public boolean onTouch(View view, MotionEvent event){
final int x= (int)event.getRawX();
final int y= (int)event.getRawY();
RelativeLayout.LayoutParams params= (RelativeLayout.LayoutParams)view.getLayoutParams();//<--ERROR
return true;
}
};
}
}
这是错误消息
E/InputEventReceiver: Exception dispatching input event.
E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
E/MessageQueue-JNI: java.lang.ClassCastException: androidx.constraintlayout.widget.ConstraintLayout$LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
at com.example.test.MainActivity$1.onTouch(MainActivity.java:28)
千万里不及你
相关分类