我是 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: handleReceiveCallbackE/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)
1 回答
千万里不及你
TA贡献1784条经验 获得超9个赞
我想在你的activity_main.xml中你有ConstraintLayout,里面有TextView,所以你应该在你的java代码中使用ConstraintLayout.LayoutParams。或者您可以在activity_main.xml 中将ConstraintLayout 更改为RelativeLayout。这取决于您想要实现的目标
添加回答
举报
0/150
提交
取消