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

时间:2018-04-16 06:19:53

标签: android android-fragments android-navigation-drawer

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

    @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;
    }

3 个答案:

答案 0 :(得分:0)

您可以使用setUserVisibleHint方法。覆盖该方法并检查isVisibleToUser参数是truegetActivity()不是null

答案 1 :(得分:0)

使用setChecked()方法设置选择导航项。 在你的活动中制作方法:

public void setNavigation(int id) {
        navigationView.getMenu().getItem(id).setChecked(true);
    }

现在在片段中调用此方法以选择导航项:

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

希望它能帮到你!!

答案 2 :(得分:0)

首先设置所有visiblity的{​​{1}} false

  
item

现在在<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> ,你可以像这样显示和隐藏Activity

item