安卓:自动完成文本视图,建议列表显示在文本视图上方?

8

你们有没有遇到这个问题?

问题截图:列表项显示在文本框上方,而不是右下方!

在一些高分辨率的屏幕上,它可以正确地显示:

enter image description here

但在低分辨率(例如在 Galaxy Spica 上 320x480px) 上显示不正确。当用户试图通过长按来滚动选择列表时,我希望键盘会自动隐藏并将其置于建议列表后面。

我尝试过在活动的Manifest.xml中添加android:windowSoftInputMode="stateHidden|adjustPan以及所有其他可能的组合,但仍然无法解决问题...我还尝试更改文本大小、项大小、内边距、整个AutoCompleteTextView的最大高度、下拉列表的最大高度、尝试使用MultiAutoCompleteTextView,甚至尝试将其嵌套在ScrollView中,但都无济于事。这是由于键盘将列表项“向上推”到文本框上方,所以如果没有键盘,一切都会很好..

非常感谢您的任何帮助...


嘿,安娜,我遇到了完全相同的问题,如果你找到了解决方案,请告诉我,提前感谢。 - itechDroid
请参考这个非常相似的问题的答案:https://dev59.com/Tmgu5IYBdhLWcg3wHzsX#48277138。 - Petter Hesselberg
4个回答

12

只需在布局文件中的AutoCompleteTextView标签中添加android:dropDownHeight="100dp"即可。


你也可以使用"wrap_content"或"match_parent",在某些情况下可能会很有用(请参见http://developer.android.com/reference/android/widget/AutoCompleteTextView.html#attr_android:dropDownHeight) - Maragues
3
如果您将其设置得太高,而又只有几个项目,那么会留下很多空白的空间。如果您将其设置得太低,而且有很多项目,那么同时只会显示很少的项目... - android developer

4
@Override
public void onFilterComplete(int count) {

    setDropDownHeight((count > DROPDOWN_LIST_COUNT ? DROPDOWN_LIST_COUNT : count) * getHeight() 
            + DROPDOWN_LIST_BORDER);

    super.onFilterComplete(count);
}

我遇到了同样的问题,尝试了上面的代码。它确保下拉列表显示DROPDOWN_LIST_COUNT个项目。


2
您可以尝试这种方法:
autoCompleteTextView.setDropDownVerticalOffset();

0

AutocompleteTextView上方的屏幕空间比下方多,因此列表向上打开。您可以调整布局,以确保AutocompleteTextView下方有更多的屏幕空间(不包括弹出键盘)。这个问题似乎已经在ICS中得到了解决。


没有,我正在使用KitKat并且遇到了同样的问题。 - Lena Bru

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接