移除TextInputLayout中的浮动标签提示文本

6

有没有办法在用户单击文本字段时删除浮动标签(提示)? 当我单击文本字段时,提示只是自动移动到编辑文本框上方,但并不消失。 我希望当用户单击文本字段并输入一些文本时,提示会消失。

以下是XML代码:

 <com.google.android.material.textfield.TextInputLayout
                android:id="@+id/etPasswordLayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:passwordToggleEnabled="true"
                app:hintTextAppearance="@style/MyHintStyle"
                android:textColorHint="@android:color/white"
                app:hintAnimationEnabled="false">

                <com.google.android.material.textfield.TextInputEditText
                    android:id="@+id/password_login"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_margin="10dp"
                    android:background="@drawable/edittext_background"
                    android:hint="@string/password"
                    android:inputType="textPassword"
                    android:padding="15dp"
                    android:textColor="@android:color/white"
                    android:textColorHint="@android:color/white" />
            </com.google.android.material.textfield.TextInputLayout>
4个回答

6
app:hintEnabled="false"

只需将以下内容添加到您的TextInputLayout中即可。尽管名称表明它只会移除浮动标签提示,但EditText的提示仍将保留。

或者,您可以在代码中调用setHintEnabled(false)来实现相同的效果。

专业提示:如果禁用提示,您可能会发现EditText在TextInputLayout中未对齐。这是已知的问题。解决此问题的方法是在EditText中添加8dp的上边距。(参考

您可以参考文档以更好地理解。


5

删除 android:hint 属性,使用 app:placeholderText 替代

   <com.google.android.material.textfield.TextInputLayout
        app:endIconMode="password_toggle"
        app:placeholderText="Password"
        ..>

enter image description here

注意: 至少需要版本1.2.0-alpha03


采用此方法,占位符文本不会在TextInputLayout内垂直输入。 - Izak

1
     <com.google.android.material.textfield.TextInputLayout
                    android:id="@+id/etPasswordLayout"
                    app:hintEnabled="false"
      
  android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    app:passwordToggleEnabled="true"
                    app:hintTextAppearance="@style/MyHintStyle"
                    android:textColorHint="@android:color/white"
                    app:hintAnimationEnabled="false">
    
                    <com.google.android.material.textfield.TextInputEditText
                        android:id="@+id/password_login"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_margin="10dp"
                        android:background="@drawable/edittext_background"
                        android:hint="@string/password"
                        android:inputType="textPassword"
                        android:padding="15dp"
                        android:textColor="@android:color/white"
                        android:textColorHint="@android:color/white" />
                </com.google.android.material.textfield.TextInputLayout>

app:hintEnabled="false" 移除提示的浮动,而不是禁用提示。


0

这个函数可以帮助你(Kotlin)

fun hintRemover(textInputLayout: TextInputLayout, textInputEditText: TextInputEditText, text: String) {
    textInputEditText.setOnFocusChangeListener { _, hasFocus ->
        if (hasFocus) {
            textInputLayout.hint = null
        }
        else {
            textInputLayout.hint = text
        }
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接