Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SearchView没有';在操作栏中不显示图标,并显示“作为操作”视图和“作为操作”视图_Java_Android_Android Appcompat - Fatal编程技术网

Java SearchView没有';在操作栏中不显示图标,并显示“作为操作”视图和“作为操作”视图

Java SearchView没有';在操作栏中不显示图标,并显示“作为操作”视图和“作为操作”视图,java,android,android-appcompat,Java,Android,Android Appcompat,Android图标不会显示在ActionBar中,相反,如果有空间,则会显示“搜索”一词 我们如何使用它: public static MenuItem addSearchItem(Menu menu, SearchView searchView) { MenuItem item = menu.add(Menu.NONE, R.id.search_item, Menu.NONE, R.string.search_label); MenuItemCompat.setShowAsAc

Android图标不会显示在ActionBar中,相反,如果有空间,则会显示“搜索”一词

我们如何使用它:

public static MenuItem addSearchItem(Menu menu, SearchView searchView) {
    MenuItem item = menu.add(Menu.NONE, R.id.search_item, Menu.NONE, R.string.search_label);
    MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW | MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
    MenuItemCompat.setActionView(item, searchView);
    ...
}
这样称呼:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    if (itemsLoaded) {
        inflater.inflate(R.menu.new_episodes, menu);

        final SearchView sv = new SearchView(getActivity());
        MenuItemUtils.addSearchItem(menu, sv);

但是,如果我们只使用SHOW_AS_ACTION_If_ROOM,那么我们将获得图标,但是如果搜索被折叠到菜单中,SearchView将无法工作

你知道为什么会这样吗

更新

即使在菜单xml中定义了SearchView,也会发生此行为它似乎只有在未指定“collapseActionView”时才能正常工作。

布局:


什么是“搜索视图”?添加了一个链接。Android SearchView:我知道,但什么是“SearchView”对象?你是如何定义它的?邮政编码。为什么不在menu.xml中声明呢?发布了更多代码。我不知道为什么菜单上没有注明。我不是最初的维护者。在某些情况下,我们希望它能在菜单中显示出来之前,它一直工作得很好。我将研究迁移到xml布局,但如果可能的话,我更喜欢一个更简单的修复。另外,如果您能理解为什么这样做不起作用,那就太好了。现在,对于使用菜单xml进行布局的代码,结果也是一样的。
    <item android:id="@+id/action_search"
          android:icon="?attr/searchIcon"
          android:title="@string/search_label"
          custom:showAsAction="ifRoom|collapseActionView"
          custom:actionViewClass="android.support.v7.widget.SearchView"/>
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    if (itemsLoaded) {
        inflater.inflate(R.menu.new_episodes, menu);

        final MenuItem searchItem = menu.findItem(R.id.action_search);
        final SearchView sv = (SearchView) MenuItemCompat.getActionView(searchItem);
        sv.setQueryHint(getString(R.string.search_hint));
        SearchViewCompat.setOnQueryTextListener(sv, new SearchViewCompat.OnQueryTextListenerCompat() {
            @Override
            public boolean onQueryTextSubmit(String s) {
                sv.clearFocus();
                ((MainActivity) getActivity()).loadChildFragment(SearchFragment.newInstance(s));
                return true;
            }

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