在横向模式下键入时显示搜索建议

时间:2011-05-03 08:35:12

标签: android landscape search-suggestion

我在搜索对话框的搜索字段中输入时已经获得了搜索建议。在纵向模式下键入时,结果将列在搜索对话框下。但当我改为横向模式时,searchdialog的文本输入字段变为全屏(我希望你知道我的意思),搜索建议再也看不到了。我知道例如谷歌地图也在横向模式下搜索建议显示在“大”文本输入字段下...我应该键入以在横向模式下键入时获取此“视图”的代码?

谢谢!

托马斯

1 个答案:

答案 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

......这导致了上面第一段中的建议。