此处不允许元素按钮

Element Button is not allowed here

我在 resources/layout 文件夹中创建了一个 fragment_b.xml 文件。在我的两个按钮上,我收到以下警告:

Element Button is not allowed here

为什么会弹出这个警告?我的代码运行良好。

fragment_b.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"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent">

        <Button
            android:id="@+id/btn_fragment_b"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/go_to_fragment_c"
            app:layout_constraintBottom_toTopOf="@id/btn_nagivate_to_fragment_f"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            />

        <Button
            android:id="@+id/btn_nagivate_to_fragment_f"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/go_to_fragment_f"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@id/btn_fragment_b"
            android:layout_marginTop="@dimen/a_lot_of_margin"/>

    </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

尝试将其更改为:

androidx.appcompat.widget.AppCompatButton

com.google.android.material.button.MaterialButton

如果您没有将 androidx ConstraintLayout 库添加为 gradle 文件中的依赖项,就会发生这种情况。

在您的 app/build.gradle 文件中,在 dependencies 块中添加:

dependencies {
    // ...
    implementation "androidx.constraintlayout:constraintlayout:2.0.0-beta3"
}

当然你可以使用不同的库版本,但是 androidx.constraintlayout:constraintlayout: 部分很重要。

完成后,执行 gradle 同步并重建您的项目,警告应该会消失。