我希望我的EditText
在获得焦点时显示其hint
作为标题,并且还显示一个下拉列表以让用户自动填充它。这些功能分别在TextInputEditText
和AutoCompleteTextView
上提供。除了使用继承创建自定义EditText
之外,还有其他方法可以实现吗?提前谢谢。
答案 0 :(得分:4)
不要使用TextInputEditText
,而只需使用AutoCompleteTextView
作为TextInputLayout
的孩子。 Lint可能会显示警告但它应该可以正常工作。
示例:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.widget.AutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Name"/>
</android.support.design.widget.TextInputLayout>
答案 1 :(得分:2)
如果要使用新的Material Design库和Android Jetpack组件,请使用以下XML布局代码:
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Example TextInputLayout">
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
style="@style/Widget.MaterialComponents.TextInputEditText.FilledBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</com.google.android.material.textfield.TextInputLayout>
请注意,使用此库时,您应该在TextInputLayout
(而不是AppCompatAutoCompleteTextView
)上设置提示。
如果要使用其他轮廓文本字段版本,请在两个样式属性中将FilledBox
替换为OutlinedBox
。