2016-05-30 76 views

回答

2

您可以處理它在片段onAttach方法。根據您的需要設置特定項目的可見性。

@Override 
public void onAttach(Context context) { 
    super.onAttach(context); 
    YourActivity activity = (YourActivity)context; 
    NavigationView navigationView = (NavigationView) activity.findViewById(R.id.yournavigationviewid); 
    navigationView.getMenu().findItem(R.id.youritemid).setVisible(false); 
} 
+1

這一個爲我工作! – Suchith

+0

這也適用於我! –

0

在您的公共onNavigationItemSelected(MenuItem項)如果您設置一個片段,然後自動抽屜將隱藏。我這樣做:

public boolean onNavigationItemSelected(MenuItem item) { 
    // Handle navigation view item clicks here. 
    toolbar.setTitle(item.toString()); 
    int id = item.getItemId(); 
    if (id == R.id.dashboard) { 
     fragment = new DashboardFragment(); 

    } else if (id == R.id.manage_users) { 

    }else{ 
    } 
    setFragmentLayout(fragment); 
    return true; 
} 

根據您的要求設置您的片段。

1

在你的setNavigationItemSelectedListener裏面你可以得到選擇的菜單項,你可以實現代碼。另外你需要存儲隱藏菜單項的情況下,以使其可見後

MenuItem prevMenuItem; 

navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { 

    @Override 
    public boolean onNavigationItemSelected(MenuItem menuItem) { 
     if(prevMenuItem != null) prevMenuItem.setVisible(true) //making visible the previously hidden item. 
     menuItem.setVisible(false); 

     prevMenuItem = menuItem //storing the instance of currently hidden item to make it visible later. 

     return true; 
    } 
}); 
0

您可以隱藏使用mDrawerLayout.closeDrawers()抽屜中onNavigationItemSelected監聽器是這樣的:

mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { 
      @Override 
      public boolean onNavigationItemSelected(MenuItem menuItem) { 
       menuItem.setChecked(true); 
       switch (menuItem.getItemId()) { 
        case R.id.navigation_item_shop: 
         //do your stuffs or attach fragment 
         mDrawerLayout.closeDrawers(); 
         return true; 
        default: 
         return true; 
       } 
     } 
    }