expandActionView в onCreateOptionsMenu удаляет или скрывает другие элементы меню из панели действий навсегда - PullRequest
0 голосов
/ 09 мая 2018

У меня есть searchView в панели действий, и когда у пользователя есть запрос в searchView, а затем поворачивает устройство, я задаю запрос в searchView в onCreateOptionsMenu и расширяю searchView с помощью menuItem.expandActionView(), потому что searchView.setIconified(false) не имеет никакого эффекта для меня, но вызов menuItem.expandActionView() удаляет или скрывает другие пункты меню даже после закрытия пользователем searchView другие пункты меню остаются скрытыми !! после того, как SearcheView закрыт пользователем, даже значок SearchView не отображается на панели действий другой пункт меню, а serachView имеет showAsAction, установленный на ifRoom

Я удивлен, когда пользователь расширяет представление действия, щелкая значок поиска, проблем не возникает, но когда я звоню expandActionView, у меня возникает эта проблема!

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_menu, menu);
    final MenuItem searchMenuItem = menu.findItem(R.id.searchMenuItem);
    searchView = (SearchView) searchMenuItem.getActionView();
    searchView.setOnQueryTextListener(this);
    searchView.setOnCloseListener(this);
    searchView.setSubmitButtonEnabled(false);

    searchView.setIconifiedByDefault(true);// <-- this line has no effect even when using false !!

    if(initialQuery != null) {

        searchView.setIconified(false);// <-- this line has no effect !!!

        searchView.setQuery(initialQuery, true);
        searchMenuItem.expandActionView();//<-- this line expands searchView but hides other menu items!!
        searchView.setQuery(initialQuery, true);
    }
    return super.onCreateOptionsMenu(menu);
}

1 Ответ

0 голосов
/ 12 сентября 2018

Решением, которое я использовал и работаю для меня, является использование всегда или никогда вместо ifRoom для showAsAction

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