Представления действий: значки меню не отображаются после onMenuItemActionCollapse - PullRequest
0 голосов
/ 04 октября 2018

Поскольку ActionView для SearchView скрывает свой пункт меню, но не другой, я пытаюсь показать / скрыть один из пунктов меню ActionBar через onMenuItemActionExpand и onMenuItemActionCollapse события:

Menu cMenu;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.item, menu);
    cMenu = menu;
    MenuItem item = menu.findItem(R.id.menuSearch);
    item.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
        @Override
        public boolean onMenuItemActionCollapse(MenuItem item) {
            // Do something when action item collapses
            cMenu.findItem(R.id.favs).setVisible(true);                    
            return true;  // Return true to collapse action view
        }

        @Override
        public boolean onMenuItemActionExpand(MenuItem item) {
            // Do something when expanded
            cMenu.findItem(R.id.favs).setVisible(false);
            return true;  // Return true to expand action view
        }
    });

    final SearchView searchView = (SearchView) item.getActionView();
    searchView.setQueryHint(getString(R.string.search_list));
    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            //Perform the final search
            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {
            new FilterListTask().execute(newText);
            return false;
        }
    });

    return true;
}

Это не работает правильно, потому что при добавлении строки кода: cMenu.findItem(R.id.favs).setVisible(true) в onMenuItemActionCollapse оба элемента исчезают из панели действий, когдаSearchView сворачивается.

Есть ли способ скрыть пункт меню в собственной функциональности ActionView?Есть идеи, пожалуйста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...