如何在布局下方显示 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")
我使用 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")