2015-08-17 2 views
0

У меня было 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; 
} 

ответ

0

Изменить

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

в

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

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

+0

следует ли мы называть это ?? 'activity.onCreateOptionsMenu (меню);' – Emil

+0

Спасибо за предложение @Boss, activity.onCreateOptionsMenu (меню); на самом деле не нужно звонить, как это делает docs invalidateOptionsMenu(), как правило, делает трюк, но по какой-то причине он не работает для меня ... Пожалуйста, проверьте обновленный код. –

Смежные вопросы