0

当启用 pip 并且用户想要搜索某些内容时,我有一个边缘情况,pip 将被解雇(当用户提交包含多个项目的查询时)。搜索组件基于<searchable>并且我们曾经SearchViewListener 从搜索视图组件中获取反馈。

@Override
public boolean onQueryTextSubmit(final String query) {
    if (!TextUtils.isEmpty(query)) {
        saveSearchSelection(query);
        fetchSearchResults(query, FULL_RESULTS_LIMIT);
    }
    return false;
}

当我将返回值更改为 true 时,pip 不会被解除,但我遇到另一个问题,当您在单击项目后单击返回时,您将返回到主要活动,而不是之前的回归列表。我想知道是否有不同的解决方案不涉及重写整个搜索列表结果只是为了支持 pip

谢谢

更新

我今天有更多的时间来玩代码,我想我找到了 pip 关闭的原因。我们正在启用语音搜索

public boolean onCreateOptionsMenu(Menu menu){
//Set up SearchableInfo (need this for voice search)
      SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
      searchView.setSearchableInfo(searchManager.getSearchableInfo(new ComponentName(getBaseContext(), UnifiedSearchResultsActivity.class)));
}

当我删除这两条线时,点子不会关闭并继续播放没有任何问题。我想知道是否有人有这个问题或知道如何解决它。我们还针对 API 级别 30。

4

1 回答 1

0

最后,我设法使用以下代码解决了这个问题

  SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
  searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
于 2021-09-20T14:16:40.490 回答