当我使用 autocompletetextview 时,一切正常,除了它不断在两个位置之间切换:正确的位置在 textview 的正下方,并且低得多。它开始错误,但几乎立即移动到正确的位置。然而,这在打字或退格时非常烦人,因为它发生在每个字母上。我正在使用安卓工作室。
看起来好像有两个事件同时试图决定布局。有时它会停留在一个位置或另一个位置。
**我使用自定义适配器减慢了过滤过程,看起来当输入文本时它会移动到不正确的位置,然后当过滤完成后它会移回正确的位置。
不正确
正确:
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);
以及布局代码-
<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" />
如果我删除 dropDownVeticalOffset,我会在正确值和这个值之间闪烁 -
最佳答案
要更改此位置,请使用 dropDownAnchor 属性并引用另一个 View ID。 (在自动完成下查看)
android:dropDownAnchor
将自动完成下拉列表锚定到的 View 。如果未指定,则使用 TextView 本身。
你有很多下拉属性..
你最好使用实现过滤器来自动完成适配器并从自动完成的 OnQueryTextListener 传递输入的文本,并通过调用 adapter.getitem 设置选定的文本。
关于java - Android AutoCompleteTextView 弹出窗口在显示后移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35385382/