2016-05-30 13 views
1

私のアプリでは、ナビゲーションドロワーを使用しました。ここで私はすべての項目をリストアップしました。画像からそれぞれのフラグメントが開かれている間にナビゲーションドロワー項目を非表示にする方法

、アイテムれ、

  • ホーム
  • フィルター&ソート
  • ウィッシュリスト
  • ショップ
  • MyOrder
  • 設定
  • ログアウト

の店にいる場合は、を非表示にする必要があります。これを行う方法?

私を助けてください。

enter image description here

答えて

2

あなたは断片onAttach方法でそれを処理することができます。あなたの必要に応じてperticularアイテムの可視性を設定します。あなたの公開onNavigationItemSelected(MenuItemの項目)で

@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

この1つは私のために働きました! – Suchith

+0

これも私のために働いた! –

0

あなたは一つの断片を設定している場合は、自動的に引き出しが非表示になります。私は次のようにしています:

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を取得すると、コードを実装できます。また、あなたは後で

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

あなたはこのようなonNavigationItemSelectedリスナーにmDrawerLayout.closeDrawers()を使用して引き出しを隠すことができ、それが見えるように隠されたメニュー項目のインスタンスを格納するために必要です。

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; 
       } 
     } 
    } 
関連する問題