Android AutoCompleteTextView弹出窗口显示后移动

gho*_*555 13 java xml android android-studio

当我使用autocompletetextview时,一切正常,除了它在两个位置之间切换:正确的一个位于textview下面并且相当低一些.它开始出错,但几乎立即移动到正确的位置.然而,当输入或退格时,这对于每个字母都是非常烦人的.我正在使用android studio.

似乎两个事件同时试图决定布局.有时它会粘在一个位置或另一个位置.

**我使用自定义适配器减慢了过滤过程,看起来当输入文本时它会移动到错误的位置,然后当过滤完成后,它会移回正确的位置.

不正确

不正确

正确:

正确

java(在OnCreate()中) -

String[] drugs = new String[]{"Nexium","Amoxicillin","LEVOCETIRIZINE DIHYDROCHLORIDE", "Advil", "Advair Diskus", "Daraprim"};

    AutoCompleteTextView drugNameAutoComplete = ((AutoCompleteTextView) findViewById(R.id.drugNameEditText));
    drugNameAutoComplete.setAnimation(null);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,drugs);
    drugNameAutoComplete.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

和布局代码 -

<AutoCompleteTextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/drugNameEditText"
            android:enabled="true"
            android:singleLine="true"
            android:layout_below="@+id/lookingForView"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:dropDownVerticalOffset="50dp"
            android:hint="@string/drug_name" />
Run Code Online (Sandbox Code Playgroud)

如果我删除dropDownVeticalOffset,我会在正确的值和此之间闪烁 -

在此输入图像描述

Sre*_*Dev 4

要更改此位置,请使用 dropDownAnchor 属性并引用另一个视图 id。(在自动完成下查看)

android:dropDownAnchor

将自动完成下拉列表锚定到的视图。如果未指定,则使用文本视图本身。

而且你有很多下拉属性。

您最好使用实现 Filter 来自动完成适配器,并从自动完成的 OnQueryTextListener 传递输入的文本,并通过调用 adapter.getitem 设置所选文本。