我有一个带菜单的Fragment:
public class FragmentA extends Fragment {
public FragmentA() {
setHasOptionsMenu(true);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.activity_main_actions, menu);
super.onCreateOptionsMenu(menu, inflater);
}
}
我想更改菜单,但它不起作用,并保留旧的操作菜单。
与上面相同,但使用不同的inflate XML菜单的Fragment B。
public class FragmentB extends Fragment {
public FragmentB() {
setHasOptionsMenu(true);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.**action_ranking**, menu);
super.onCreateOptionsMenu(menu, inflater);
}
}
EDITED:
对于不同的片段,使用不同的菜单布局可能是有用的,对于主活动和不同的ID,则使用1个菜单布局。
setHasOptionsMenu(true)
。 - Boban S.