我希望我的EditText
在获得焦点时显示其hint
作为标题,并且还显示一个下拉列表以让用户自动完成它。这些功能分别在TextInputEditText
和AutoCompleteTextView
上提供。除了使用继承创建自定义EditText
之外,还有其他方法可以实现吗?提前致谢。
而不是使用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>
如果您需要新的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
。