我在搜索对话框的搜索字段中输入时已经获得了搜索建议。在纵向模式下键入时,结果将列在搜索对话框下。但当我改为横向模式时,searchdialog的文本输入字段变为全屏(我希望你知道我的意思),搜索建议再也看不到了。我知道例如谷歌地图也在横向模式下搜索建议显示在“大”文本输入字段下...我应该键入以在横向模式下键入时获取此“视图”的代码?
谢谢!
托马斯
答案 0 :(得分:5)
如果您希望您的建议以横向显示,则需要执行以下操作之一:
SUGGEST_COLUMN_QUERY
添加到您的建议结果android:searchMode="queryRewriteFromText"
或``android:searchMode =“queryRewriteFromData”to your
searchable.xml` 然而,我认为建议显示普通弹出窗口而不是全屏键盘更好。您可以通过向android:imeOptions="flagNoExtractUi"
添加searchable.xml
来实现此目的。
就是这样。如果你很好奇,这就是我追踪它的方式:
Hierarchy Viewer会告诉您,搜索对话框由SearchDialog
实施,AutoCompleteTextView
使用buildDropDown()
作为完成文本视图。其convertSelectionToString()
函数会对Filter.convertResultToString()
的{{1}}返回的项目调用AutoCompleteTextView
(通过SuggestionsAdapter
),然后将其传递给mAdapter.getItem()
(负责你想要的建议)。
对于InputMethodManager.displayCompletions()
,适配器是CursorAdapter
。这是convertResultToString()
的子类,其SearchDialog
方法返回getFilter()
类,通过委托适配器类上的CursorFilter
来实现{{3}}。 convertToString()
最终实现此方法如下:
SuggestionsAdapter
......这导致了上面第一段中的建议。