android - 如何在不同的 fragment 中设置 ActionBar 项目的可见性

标签 android android-fragments actionbarsherlock menuitem

我正在寻找一种方法来设置在我的 MainActivity 中膨胀的 MenuItem 的可见性,具体取决于我所在的 Fragment

有关信息:我正在使用 actionBarSherlockzxing 和一些 google 服务

该应用程序是用抽屉导航(带 abs)构建的,我也以这种方式操作 FragmentStack 我每次按下触摸返回时切换到另一个 Fragment 我回到我的 主要 fragment

这是我的菜单:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
   <item android:id="@+id/button_generator" android:title="GENERER" android:icon="@drawable/ic_drawer"></item>
</menu>

这是我膨胀菜单的地方:

 @Override
public boolean onCreateOptionsMenu(Menu menu) {
    Log.d(TAG, "================= onCreateOptionsMenu ================= fragSt: " + fragmentStatus);
    this.getSherlock().getMenuInflater().inflate(R.menu.main, menu);

    mGenQrFromContacts = menu.findItem(R.id.button_generator);


    return true;
}

我已经尝试了针对 here 的解决方案,但对我来说不起作用。

最佳答案

你应该在你的 Fragment 中试试这个:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    // ...  
    // call the method setHasOptionsMenu, to have access to the menu from your fragment
    setHasOptionsMenu(true);

    //...
}

// the create options menu with a MenuInflater to have the menu from your fragment
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    menu.findItem(R.id.button_generator).setVisible(true);
    super.onCreateOptionsMenu(menu, inflater);
}  

还有这个,在你的Activity中:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getSupportMenuInflater().inflate(R.menu.my_layout, menu);
    menu.findItem(R.id.button_generator).setVisible(false);
    return true;
}

希望这对您有所帮助。

关于android - 如何在不同的 fragment 中设置 ActionBar 项目的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20685665/

相关文章:

android - 让用户改变默认方向

java - Android - 扩展 ViewGroup 而不是添加 fragment 显示为空白

Android PackageInstaller安装结果

javascript - PhoneGap - 允许的 Activity 媒体对象的最大数量?

java - Android 音频采集静音检测

android - ViewPager 在第一页和最后一页重新加载 fragment

android - 如何将数据从 Activity 的异步任务传递到 fragment

android - 扩展 actionBar-ActionView 并显示新的 Fragment

android - 如何覆盖样式。获取空指针异常 getSupportActionBar().setHomeButtonEnabled(true)

Android NDK 输入源