保持 Textinputlayout 提示始终位于顶部
Keep Textinputlayout hint always top
是否可以让我的提示文本始终置顶,就好像它是可聚焦的一样?
我试过这个:
<android.support.design.widget.TextInputLayout
android:id="@+id/etSurnameInput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/llNameImage"
android:hint="My Hint Text"
app:hintEnabled="true"
app:hintAnimationEnabled="false"
android:textColorHint="@color/gray_title">
这是一个技巧 - 如果文本为空,则以编程方式在文本中添加 space。但是,如果 space 获得焦点,则您必须删除它,否则用户将开始使用前导白色 space 进行键入。另一种选择是始终 trim
用户输入的文本。
我当时的最终解决方案实际上只是设置 hintEnabled="false" 并在顶部使用 TextView。
您可以将 android:minLines="2"
设置为 TextInputEditText
或大于 2。同时保持 android:gravity="top"
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="100dp"
android:gravity="top"
android:hint="Username"
android:minLines="2" />
实际上,从 com.google.android.material:material:1.3.0-alpha03
或更高版本开始,您可以简单地设置 app:expandedHintEnabled="false"
使其始终浮动。
将 android:textAlignment="center" 设置为 TextInputEditText 并将 android:gravity="start" 设置为 TextInputLayout
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tilName"
app:expandedHintEnabled="false"
android:hint="@string/name_hint"
android:gravity="start"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:layout_gravity="center"
android:hint="@string/name_hint"
android:textAlignment="center"
android:id="@+id/fieldName"
android:inputType="text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
是否可以让我的提示文本始终置顶,就好像它是可聚焦的一样?
我试过这个:
<android.support.design.widget.TextInputLayout
android:id="@+id/etSurnameInput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/llNameImage"
android:hint="My Hint Text"
app:hintEnabled="true"
app:hintAnimationEnabled="false"
android:textColorHint="@color/gray_title">
这是一个技巧 - 如果文本为空,则以编程方式在文本中添加 space。但是,如果 space 获得焦点,则您必须删除它,否则用户将开始使用前导白色 space 进行键入。另一种选择是始终 trim
用户输入的文本。
我当时的最终解决方案实际上只是设置 hintEnabled="false" 并在顶部使用 TextView。
您可以将 android:minLines="2"
设置为 TextInputEditText
或大于 2。同时保持 android:gravity="top"
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="100dp"
android:gravity="top"
android:hint="Username"
android:minLines="2" />
实际上,从 com.google.android.material:material:1.3.0-alpha03
或更高版本开始,您可以简单地设置 app:expandedHintEnabled="false"
使其始终浮动。
将 android:textAlignment="center" 设置为 TextInputEditText 并将 android:gravity="start" 设置为 TextInputLayout
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tilName"
app:expandedHintEnabled="false"
android:hint="@string/name_hint"
android:gravity="start"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:layout_gravity="center"
android:hint="@string/name_hint"
android:textAlignment="center"
android:id="@+id/fieldName"
android:inputType="text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>