如何从自定义片段中显示MenuItem

时间:2013-08-08 18:25:50

标签: android android-fragments android-viewpager searchview

我隐藏的SearchView中有一个onCreateOptionsMenu()

if(mState == 0){
    msearchMenuItem.setVisible(false);  
}

我希望在访问Fragment中属于ViewPager的自定义setMenuVisibility(boolean menuVisible){ } 后,它才会成真:

MenuItem

我知道我无法将Fragment的引用传递给我的ActionBar,因为layout不是MainActivity,并且其所有流程都需要来自mState

我的选择是在setMenuVisibility()中更改Fragment的值SearchView,但在我与DrawerLayout互动后显示SearchView。如果我没有触摸主页按钮,它将永远不会显示Fragment

现在,当我在{{1}}时,我该怎么办才能加载它?

3 个答案:

答案 0 :(得分:0)

您创建了对活动的回调,当您在片段中时,该活动会再次启用菜单选项。

请参阅Communicating with an Activity

答案 1 :(得分:0)

  

现在,当我在片段时,我该怎么办才能加载它?

您可以使用Fragment的setMenuVisibility()方法中的onCreateView()回调。

答案 2 :(得分:0)

实际答案是从onCreateOptionsMenu()覆盖Fragment。但首先,我必须在setHasOptionsMenu(true);中致电onCreate(),因此覆盖可能会生效。