Android 如何在各个片段打开时设置菜单项的可见性?

Android 如何在各个片段打开时设置菜单项的可见性?,android,android-fragments,navigation-drawer,Android,Android Fragments,Navigation Drawer,事实上,我使用的是导航抽屉,但在打开相应片段时,背面按钮菜单项不可见。如何设置菜单项的可见性?有人能帮我吗 @Override public boolean onNavigationItemSelected(MenuItem item) { // Handle navigation view item clicks here. Fragment fragment = null; int id = item.getItemId

事实上,我使用的是导航抽屉,但在打开相应片段时,背面按钮菜单项不可见。如何设置菜单项的可见性?有人能帮我吗

    @Override    
    public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        Fragment fragment = null;
        int id = item.getItemId();


        navigationView.getMenu().getItem(0).setActionView(R.layout.menu_home);
        navigationView.getMenu().getItem(1).setActionView(R.layout.menu_profile);
        navigationView.getMenu().getItem(2).setActionView(R.layout.menu_history);
        navigationView.getMenu().getItem(3).setActionView(R.layout.menu_contact_igrab);
        navigationView.getMenu().getItem(4).setActionView(R.layout.menu_help);
        navigationView.getMenu().getItem(5).setActionView(R.layout.menu_logout);



        if (id == R.id.home) {
            item.setActionView(R.layout.menu_home_blue);

            changeFragments(new CustomerHomeFragment());


        } else if (id == R.id.my_profile) {
            item.setActionView(R.layout.menu_my_profile_blue);
            changeFragments(new CustomerProfileFragment()); } DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }

您可以使用
setUserVisibleHint
方法。覆盖该方法并检查
isVisibleToUser
参数是否为
true
getActivity()
是否为
null

使用
setChecked()
方法设置选择导航项。 在活动中创建方法:

public void setNavigation(int id) {
        navigationView.getMenu().getItem(id).setChecked(true);
    }
现在在片段中调用此方法以选择导航项:

((YourActivity)mContext).setNavigation(int position);

希望它能帮助你

所有
项目的第一组
可视性
false
类似:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
 <group android:checkableBehavior="single">
    <item
        android:id="@+id/nav_dashboard"
        android:icon="@drawable/ic_dashboard"
        android:title="@string/nav_dashboard"
        android:visible="false" />
</group>
</menu>

但是由于最初所有菜单项的可见性都消失了,那么我如何选择菜单项对不起,我的英语很抱歉,我希望你能理解我想说的…你想显示的菜单项你可以根据任何条件将其设置为Visibly true我想在打开相应的片段时选择特定的菜单项。但是这需要前面的步骤所选值。是否调用navigationItemSelected方法中的所有片段?对吧?对。。但当我从配置文件片段返回到主片段时,配置文件菜单项被选中,而不是主菜单项。是的,我在配置文件片段调用
((YourActivity)mContext)中告诉过你。设置导航(int位置)方法。现在记住位置将是你的家碎片。我在我的项目中也做了同样的事情。工作正常。你能告诉我如何实现这个方法吗?发布你的代码,说明你是如何实现的,以使菜单项可见。你能分享任何可以更详细地描述你的问题的快照吗?
NavigationView navigationView = (NavigationView)findViewById(R.id.nav_view);
Menu menu =navigationView.getMenu();
MenuItem nav_dashboard = menu.findItem(R.id.nav_dashboard);
nav_dashboard.setVisible(true);