【问题标题】:SearchView is not showingSearchView 未显示
【发布时间】:2021-02-06 15:38:39
【问题描述】:

我已经尝试了一百万种方法来将 SearchView 放置在我的 sn-p 中。我整天阅读文档和教程,但没有任何效果。我停在了这里:

search_menu.xml

<?xml version="1.0" encoding="utf-8"?>
  <menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">
      <item android:id="@+id/action_search"
          android:title="@string/app_name"
          android:icon="@drawable/ic_baseline_search_24"
          app:showAsAction="collapseActionView|ifRoom"
          />
  </menu>

java代码

public class Search_offer extends Fragment {
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        setHasOptionsMenu(true);
        return inflater.inflate(R.layout.activity_search_offer,container,false);
    }

    public void onStart(){
        super.onStart();
}

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        super.onCreateOptionsMenu(menu, inflater);
        menu.clear();

        inflater.inflate(R.menu.search_menu, menu);
        MenuItem item = menu.findItem(R.id.search);
        item.setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW | MenuItem.SHOW_AS_ACTION_IF_ROOM);

        SearchView searchView = (SearchView) item.getActionView();
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {

            @Override
            public boolean onQueryTextSubmit(String query) {
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                return false;
            }

        });
    }

}

我无法弄清楚为什么它没有以任何方式显示。请帮忙

【问题讨论】:

    标签: android xml searchview


    【解决方案1】:

    你能运行它并显示编译或运行错误吗? 我想,我没有完全理解这个问题。

    这里有一些关于菜单的提示:

    1. 开始时,您可以使用 app:showAsAction="always"

    在这种情况下,您选择的小图标应该在应用栏中显示。因此,如果图像完全出现(学习),您可以进行检查。

    1. 其次 - 可能程序在查找 SearchView 时遇到问题,因为您忘记添加“app:actionVieClass”。在这种情况下,您的代码应该在调用这一行 (SearchView) item.getActionVie() 时抛出错误。

    看看这个视频 - 也许它会有所帮助:https://youtu.be/9OWmnYPX1uc

    【讨论】:

      猜你喜欢
      • 2018-03-02
      • 1970-01-01
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-15
      • 2014-12-15
      相关资源
      最近更新 更多