如何在布局下方显示 EditText 错误而不是弹出窗口?

How to show EditText error below the layout instead of a popup?

我使用 Material TextInputLayout 在用户输入错误值时显示错误。虽然错误逻辑工作正常,但错误显示在布局下的 this instead of being shown like this 弹出窗口中。任何人都可以解释我做错了什么。这就是我在布局 xml 文件中创建 EditText 的方式:

<com.google.android.material.textfield.TextInputLayout
        android:id="@+id/password_layout_signup_page"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginEnd="32dp"
        app:errorEnabled="true"
        app:passwordToggleEnabled="true"
        android:layout_below="@id/email_layout_signup_page">
 <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/password_edit_signup_page"
            style="@style/Body2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:drawableStart="@drawable/lock_icon"
            android:drawablePadding="8dp"
            android:drawableTint="@color/hint_gray"
            android:ems="10"
            android:hint="@string/password_asteriks"
            android:inputType="textPassword" />
    </com.google.android.material.textfield.TextInputLayout>

这就是我在相应的 .kt 文件中设置错误的方式:

passwordEditText.setError("Be at least 8 characters",null)

TextInputLayout 而不是 TextInputEditText

上设置错误

所以试试这个:

password_layout_signup_page.setError("Be at least 8 characters")