【问题标题】:Action buttons are shown in all fragments操作按钮显示在所有片段中
【发布时间】:2014-04-20 00:44:04
【问题描述】:

我在片段中包含了一个菜单。 但是当在我的 viewpager 中转到其他片段(不是覆盖菜单)时,即使设置 setHasOptionsMenu(false),操作按钮也保持不变(所有操作)。

任何人都知道如何禁用其他片段中的操作按钮,或者您需要在每个片段中填充一个空菜单?

提前致谢

这是我的代码(在片段中):

@Override

    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    menu.clear();
    inflater.inflate(R.menu.main, menu);

    }

@Override
public void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);


}

【问题讨论】:

  • 我的回答对你有帮助吗?

标签: android android-fragments android-viewpager


【解决方案1】:

您需要从Fragment onCreateView 调用setHasOptionsMenu,以告诉Activity Fragment 具有选项菜单。这样onCreateOptionsMenu就会被调用。

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View row =  inflater.inflate(R.layout.fragment_main, container, false);

    setHasOptionsMenu(true);
    return row;
}

并且,在 onCreateOptionsMenu 中,只需清除菜单项

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

【讨论】:

  • 但是打开DialogFragment后就不行了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-24
  • 2016-05-31
  • 1970-01-01
  • 1970-01-01
  • 2019-09-15
  • 2017-07-24
  • 2021-12-02
相关资源
最近更新 更多