Это как ваша деятельность будет
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
//your menu item
return true;
}
return super.onOptionsItemSelected(item); // important line
}
В вашем методе фрагмента onCreateView()
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
setHasOptionsMenu(true); //imp line
return inflater.inflate(R.layout.fragment_following, container, false);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.fragment_menu, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case R.id.action_1:
// do stuff
return true;
case R.id.action_2:
// do more stuff
return true;
}
return false;
}
Можете ли вы опубликовать код о том, как вы заменяете фрагменты? Вы не используете FragmentTransaction .replace()? Как ваша настройка xml/как вы инициализируете фрагменты? –
Лучший способ состоит в том, чтобы все меню в одном файле и раздувались в активности. После загрузки Fragment из вызова Activity invalidateOptionsMenu(), а затем в onPrepareOptionsMenu() обрабатывает видимость соответствующих пунктов меню. –
@ Jogendra Gouda, вы пробовали мое решение? –