Панель инструментов Android не обновляется, пока не коснется значка меню переполнения

У меня был MainActivity, который расширяет android.support.v7.app.ActionBarActivity и панель инструментов с поиском, значками фильтров и другими параметрами в меню переполнения, когда я загружаю определенный фрагмент, я хочу, чтобы значок поиска исчезал и показывал значок фильтра. Как и в моем коде ниже, я пытаюсь скрыть значок поиска и показать значок фильтра, но панель инструментов обновляется только тогда, когда я нажимаю значок меню переполнения. Я запутался, где я ошибаюсь ... любые предложения приветствуются, заранее спасибо.

MY_FRAGMENT.Java

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    position = getArguments().getInt(ARG_POSITION);
    return rootView;
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
    Log.v("oncreate", "");
}

@Override
public void onPrepareOptionsMenu(Menu menu) {
    Log.v("onPrepareOptionsMenu", "");
    AppCompatActivity activity = (AppCompatActivity) getActivity();
    menu.findItem(R.id.action_filter).setVisible(true).setEnabled(true);
    menu.findItem(R.id.action_notification).setVisible(false).setEnabled(false);
    activity.invalidateOptionsMenu(); 
    menu.findItem(R.id.action_notifications).setVisible(false).setEnabled(false);
    return;
}

person Halcyon android dev    schedule 17.08.2015    source источник


Ответы (1)


Изменять

activity.invalidateOptionsMenu();
activity.onCreateOptionsMenu(menu);

to

activity.onCreateOptionsMenu(menu);
activity.invalidateOptionsMenu();

Я надеюсь, что это помогает!

person Rajesh    schedule 17.08.2015
comment
мы должны называть это ?? activity.onCreateOptionsMenu(menu); - person Emil; 17.08.2015
comment
Спасибо за предложение @Boss, activity.onCreateOptionsMenu(menu); на самом деле нет необходимости вызывать, согласно документам, invalidateOptionsMenu() обычно помогает, но по какой-то причине у меня это не работает... Пожалуйста, проверьте обновленный код. - person Halcyon android dev; 17.08.2015