我已经在我的应用程序的 ActionBar 中添加了一个 SearchView,并使用 SearchableInfo 设置了一个 SuggestionsProvider。建议实际上运作良好,除了当搜索查询文本为空时不显示任何建议。我发现即使将 searchSuggestThreshold 设置为 0,也不会向我的建议提供者查询建议。
我最接近的解决方案是使用 setOnQueryTextFocusChangeListener 并在 onFocusChange 中交换 SearchView 建议适配器的光标。通过这种方式,我看到了正确高度的建议下拉,但是没有显示任何建议文本。
下面是我如何查询光标以显示空文本的建议。
Cursor emptySuggestions = getContentResolver().query(
Uri.parse("content://my.authority/search_suggest_query/test"),
null, null, null, null);
有什么方法可以使建议正确显示吗?
当然,当搜索查询为空时,总是有可能显示我自己的 ListPopupWindow,但我想避免这种情况,除非有一种简单的方法来重用 SearchView 中使用的布局。
最佳答案
我想出了如何触发搜索 View 来查询我的建议提供者的空搜索文本:
_searchView.setOnQueryTextFocusChangeListener(new OnFocusChangeListener()
{
@Override
public void onFocusChange(View v, boolean hasFocus)
{
if (!hasFocus)
return;
String query = _searchView.getQuery().toString();
_searchView.setQuery(query, false);
}
});
关于Android Honeycomb - 如何在查询文本为空时显示对 SearchView 的建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8667795/