Как вызывать onCreateOptionsMenu только один раз в течение жизненного цикла фрагмента - PullRequest
0 голосов
/ 14 мая 2019

onCreateOptionsMenu вызывается каждый раз, когда Fragment возобновляется.Есть ли какое-либо решение для вызова onCreateOptionsMenu только once при создании фрагмента?

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.search_menu, menu);
        final MenuItem searchItem = menu.findItem(R.id.action_search);
        final SearchView searchView = (SearchView) searchItem.getActionView();
        searchView.setQueryHint(getString(R.string.search_hint));
        searchItem.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
            @Override
            public boolean onMenuItemActionExpand(MenuItem item) {
                return true;
            }

            @Override
            public boolean onMenuItemActionCollapse(MenuItem item) {
                showContacts();
                return true;
            }
        });
    }

1 Ответ

1 голос
/ 14 мая 2019

Он подключен к жизненному циклу, поэтому метод будет вызван. Это не означает, что ваш код должен вызываться каждый раз. Установите логический уровень класса, чтобы код выполнялся только один раз. Или, возможно, проверьте 'getOnActionExpandListener' ...

if(searchItem.getOnActionExpandListener() == null) {
    searchItem.setOnActionExpandListener.......
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...