Android Fragment Menus

时间:2018-06-01 11:05:33

标签: android android-fragments menu menuitem oncreateoptionsmenu

在app活动中,我有四个不同的片段。我已经使用

为每个片段添加了菜单
@Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {}

功能。但是,当我滑动到下一个片段,然后回到上一个片段时,下一个片段的菜单选项被添加到当前可见片段的菜单中。还在menu.clear()中添加了第一个语句onCreateOptionsMenu(),但没有效果。坚持这个问题。

1 个答案:

答案 0 :(得分:0)

在每个片段OnCreateOnCreateView方法中,请确保拨打setHasOptionMenu(true),如下所示。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setHasOptionsMenu(true);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_list, container, false);

    ...
    setHasOptionsMenu(true);

    return rootView;
}

还要检查您是否正在呼叫super.onCreateOptionsMenu

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.list_menu, menu);
    super.onCreateOptionsMenu(menu, inflater);
}