同一EditText中的AutoComplete和TextInput功能?

时间:2017-01-22 13:11:59

标签: android android-edittext

我希望我的EditText在获得焦点时显示其hint作为标题,并且还显示一个下拉列表以让用户自动填充它。这些功能分别在TextInputEditTextAutoCompleteTextView上提供。除了使用继承创建自定义EditText之外,还有其他方法可以实现吗?提前谢谢。

2 个答案:

答案 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