5

AutoCompleteTextView在我的应用程序中使用自定义适配器,它在纵向模式下完美运行。然而,在水平模式下,软件键盘占据了大部分屏幕,文本视图使用覆盖按钮而不是适配器提供的视图。

我找不到关于它如何在幕后工作的清晰文档。似乎在横向模式下AutoCompleteTextView绕过了适配器的getView()方法,getItem()使用原始字符串进行了一些肮脏的工作并呈现项目本身。

更糟糕的是,它似乎AutoCompleteTextView准确地呈现了两个自动完成提示列表:标准下拉和覆盖按钮同时(如果我们将 imeOptions 设置flagNoExtractUi为防止AutoCompleteTextView横向扩展,这很明显)。

我想在两种情况下都提供我自己的视图——但到目前为止,我只为下拉菜单做到了。为覆盖列表提供自定义视图的任何更改?

很抱歉,由于排名低,我还不能发布图片。如果有人需要,我可以发给他们。

4

1 回答 1

0

I just encountered this issue myself. Like you said, in landscape the TextView is basing its autocomplete hints on the result of getItem(). I don't really see a way to provide anything other than text in this scenario, but a simple solution to get the correct text to show in landscape is to override toString() for the object you are basing the hint on.

For instance, in my scenario I am using a list of Contact objects to populate my autocomplete hints, so I overrode toString() in my Contact class to get it to show "FirstName LastName" instead of a raw object representation like "Contact@a2a6d4d3a5."

于 2012-08-15T15:28:18.850 回答