为了账号安全,请及时绑定邮箱和手机立即绑定

androidx.constraintlayout.widget.ConstraintLayout

androidx.constraintlayout.widget.ConstraintLayout

大话西游666 2023-08-04 15:22:44
我是 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。这取决于您想要实现的目标



查看完整回答
反对 回复 2023-08-04
  • 1 回答
  • 0 关注
  • 176 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信