У меня было MainActivity
, которое расширяет android.support.v7.app.ActionBarActivity
и панель инструментов с поиском, значками фильтров и другими опциями в меню переполнения, когда я загружаю определенный фрагмент, я хочу, чтобы значок поиска исчез и отобразился значок фильтра. Как и в моем коде ниже, я пытаюсь скрыть значок поиска и показать значок фильтра, но панель инструментов обновляется только тогда, когда я нажимаю значок меню переполнения. Я смущен, когда я ошибаюсь ... любые предложения приветствуются, спасибо заранее.Панель инструментов Android не обновляется до нажатия на значок меню переполнения
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;
}
следует ли мы называть это ?? 'activity.onCreateOptionsMenu (меню);' – Emil
Спасибо за предложение @Boss, activity.onCreateOptionsMenu (меню); на самом деле не нужно звонить, как это делает docs invalidateOptionsMenu(), как правило, делает трюк, но по какой-то причине он не работает для меня ... Пожалуйста, проверьте обновленный код. –