横屏模式下的AutoCompleteTextView提示信息

5

我在我的应用中使用了AutoCompleteTextView和自定义适配器,它在竖屏模式下工作得很好。但是在横向模式下,软件键盘占据了大部分屏幕空间,文本视图使用覆盖按钮而不是适配器提供的视图。

我无法找到清晰的文档说明这是如何背后运作的。似乎在横向模式下,AutoCompleteTextView将绕过适配器的getView()方法,使用getItem()做一些琐碎的工作,并使用原始字符串自己渲染项。

更糟糕的是,AutoCompleteTextView实际上会同时呈现标准下拉列表和覆盖按钮两个自动完成提示列表(如果我们将imeOptions设置为flagNoExtractUi以防止在横屏时AutoCompleteTextView扩展,则可以看到这一点)。

我想在两种情况下都提供自己的视图-但到目前为止,我只能为下拉菜单提供自定义视图。有没有更改可提供覆盖列表自定义视图的方法?

非常抱歉,由于排名较低,我无法发布图片。如果有人需要,我可以发送给他们。


你能帮我解决这个问题吗?https://dev59.com/HIjca4cB1Zd3GeqP07xf - user4050065
1个回答

0

我刚刚也遇到了这个问题。就像你说的,在横屏模式下,TextView 根据 getItem() 的结果,进行自动完成提示。在这种情况下,我并没有看到提供其他内容的方法,但是可以通过为基于提示的对象覆盖 toString() 方法来获得正确的文本在横屏模式下显示的简单解决方案。

例如,在我的场景中,我正在使用联系人对象列表来填充自动完成提示,因此我在我的联系人类中覆盖了 toString() 方法,以便将其显示为“名字 姓氏”,而不是原始对象表示方式如“Contact@a2a6d4d3a5”。


有一个比改变toString()的工作方式更好的解决方案,可能希望为此场景实现不同的解决方案。 - Skytile

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