AppCompat v21上的SearchView对触摸没有反应

时间:2014-11-06 17:27:00

标签: android android-actionbar searchview android-appcompat

在我ActionBarActivity我有这段代码:

  @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.near_location_menu, menu);
        MenuItem searchItem = menu.findItem(R.id.action_user_search);
        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);

        setupNewSearchView(searchItem, searchManager);
        return true;
    }

    private void setupNewSearchView(final MenuItem searchItem, SearchManager searchManager) {

        SearchView searchView = (SearchView)  MenuItemCompat.getActionView(searchItem);
        searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));

        if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE) {
            searchView.setIconifiedByDefault(false);
        } else {
            searchView.setIconifiedByDefault(true);
        }

        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            public boolean onQueryTextChange(String arg0) {
                return false;
            }

            public boolean onQueryTextSubmit(String arg0) {
                if (searchItem != null) {
                    searchItem.collapseActionView();
                }
                return false;
            }
        });

    }

现在SearchView只应在我转到特定Fragment时显示,在Fragment中,我这样做:

   @Override
    public void onPrepareOptionsMenu(Menu menu) {
        super.onPrepareOptionsMenu(menu);

          menu.findItem(R.id.action_user_search).setVisible(true);
          menu.findItem(R.id.action_view_spots).setVisible(false);
          menu.findItem(R.id.action_refresh).setVisible(false);
          getActivity().supportInvalidateOptionsMenu();

    }

问题:

当我转到此Fragment时,SearchView会显示,但触摸没有任何反应。它不会打开或回应。我做错了什么?

补充资料:

ActionBarActivity中的

import android.support.v7.widget.SearchView;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.Toolbar;
Fragment中的

import android.view.Menu;
import android.support.v4.app.ListFragment;

1 个答案:

答案 0 :(得分:0)

您是否在setHasOptionsMenu(true)上设置了onCreateView

相关问题