Android 为什么我的小部件不是';当我运行我的应用程序时,是否未正确定位?

Android 为什么我的小部件不是';当我运行我的应用程序时,是否未正确定位?,android,android-studio,android-layout,Android,Android Studio,Android Layout,我是Android Studio的新手,如果这是一个愚蠢的问题,请提前道歉。我试图制作一个简单的应用程序,当你按下按钮时,文本会发生变化,但每当我在模拟器中运行应用程序时,位置都与android小部件设计中显示的位置不同 xml文件: <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:andro

我是Android Studio的新手,如果这是一个愚蠢的问题,请提前道歉。我试图制作一个简单的应用程序,当你按下按钮时,文本会发生变化,但每当我在模拟器中运行应用程序时,位置都与android小部件设计中显示的位置不同

xml文件:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Change Text"
        android:textSize="20sp"
        tools:layout_editor_absoluteX="112dp"
        tools:layout_editor_absoluteY="399dp" />

    <TextView
        android:id="@+id/txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Text"
        android:textColor="#000000"
        android:textSize="50sp"
        tools:layout_editor_absoluteX="158dp"
        tools:layout_editor_absoluteY="320dp" />
</androidx.constraintlayout.widget.ConstraintLayout>


如果有人能帮忙,我们将不胜感激,提前谢谢

您不应该在小部件中使用工具属性,而应该使用约束

用以下代码替换您的代码:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

<Button
    android:id="@+id/btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Change Text"
    android:textSize="20sp"
    android:layout_marginTop="22dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/txt" />

<TextView
    android:id="@+id/txt"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Text"
    android:textColor="#000000"
    android:textSize="50sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

在Android Studio中应该会有一些警告,指出您尚未在
ConstraintLayout
中设置任何实际约束。您只需在布局编辑器中拖动小部件,在运行时没有实际效果。有关在Android Studio中使用
ConstraintLayout
的更多信息,请参阅和。