【问题标题】:How to make a SearchView always expanded in android?如何使 SearchView 始终在 android 中展开?
【发布时间】:2017-08-16 15:47:30
【问题描述】:

我知道这个问题在这里出现过几次,但没有一个结果对我有帮助。

我想让我的 SearchView 始终处于扩展状态。 当我进入活动时,它会展开,当我第一次按下后退按钮时,键盘会关闭(没关系),当我再次按下后退按钮时 - SearchView 会关闭而不是返回到上一个活动。

这是我在活动中的代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_search_series, menu);

    // Associate searchable configuration with the SearchView
    SearchManager searchManager =
            (SearchManager) getSystemService(Context.SEARCH_SERVICE);

    // Get the SearchView item
    MenuItem item = menu.findItem(R.id.search);
    SearchView searchView = (SearchView) item.getActionView();

    searchView.setSearchableInfo(
            searchManager.getSearchableInfo(new ComponentName(this, SearchSeriesActivity.class)));

    // Make it open from the start
    item.expandActionView();

    searchView.setOnQueryTextListener(this);

    return true;
}

这是xml:

<item android:id="@+id/search"
    android:title="@string/action_search_series"
    android:icon="@mipmap/ic_search_white"
    app:showAsAction="always|collapseActionView"
    app:actionViewClass="android.support.v7.widget.SearchView" />

我尝试了所有解决方案:

  • 将 app:showAsAction 替换为仅“ifRoom”中的“always”根本无法打开它。
  • 将 android:iconifiedByDefault 设置为 false 或 true - 它们都不起作用,在代码中也不起作用。

谢谢!

【问题讨论】:

    标签: android search searchview


    【解决方案1】:

    我遇到了和你一样的问题,我发现就我而言,最好的解决方案是创建一个自定义搜索栏,而不考虑谷歌的搜索栏,因为不仅我遇到了你的问题'现在有,还有其他与其样式有关的。

    所以,看看我的解决方案可能会有用:Styling Search View on Android (min21)

    【讨论】:

    • 幸好我用的是minSdk 15
    • 我很确定你仍然可以做到,只要进行适当的修改。
    猜你喜欢
    • 1970-01-01
    • 2015-11-12
    • 2022-09-27
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    相关资源
    最近更新 更多