1

は現在、私はthis-特定のロジックの特定のBottomNavigationViewアイテムでシフトを無効にすることはできますか?

mBottomNav.setOnNavigationItemSelectedListener(
       ...... 
    switch (item.getItemId()) { 

     case R.id.actionUser: 
      if(userLoggedIn) { 
       mHomePresenter.btnUser(); 
      } 
      else { 
       showLongToast("User Not Logged In"); 
      } 
      break; 
    }); 

私はトーストメッセージが表示されます論理的な他の一部のような実装を持っていない、どちらも私はBottomNavigationViewがずれたり、メニューアイコンの色が変化します。

どのようにこのようなロジックをこの特定の部分にのみ実装できますか?他のすべてのメニュー項目はデフォルトのシフトロジックを維持します。

+0

こんにちはファティマを見ることができます詳細をお知らせください。それははっきりしていません。いくつかの実行例を提供することができれば幸いです。 –

+0

私はすでに解決策を得ています。受け入れられた答えを下に見てください。ご心配をありがとう! @ ShravanJain – Farwa

+0

恐ろしいYrr .... :) –

答えて

1

まあ答えは、条件のためにあなたは、それがあるべき遷移が起こるあなたがfalse

返すアカウントにコードを撮影したいいけない状態のためtrueを返したい、非常に簡単です

mBottomNav.setOnNavigationItemSelectedListener(
    @Override 
    public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
     switch (item.getItemId()) { 
     case R.id.actionUser: 
      if(userLoggedIn) { 
       mHomePresenter.btnUser(); 
       return true; 
      } 
      else { 
       showLongToast("User Not Logged In"); 
       return false; 
      } 
     } 
    }); 

あなたはナビゲーション選択リスナーのためのドキュメントをチェックすると、あなたは

/** 
* Listener for handling selection events on bottom navigation items. 
*/ 
public interface OnNavigationItemSelectedListener { 

    /** 
    * Called when an item in the bottom navigation menu is selected. 
    * 
    * @param item The selected item 
    * 
    * @return true to display the item as the selected item and false if the item should not 
    *   be selected. Consider setting non-selectable items as disabled preemptively to 
    *   make them appear non-interactive. 
    */ 
    boolean onNavigationItemSelected(@NonNull MenuItem item); 
} 
+0

Wonderful !!出来た!私は初心者です。そのシフトヘルパークラスが私の頭を沸かせていた! この最も簡単な解決策を指摘してくれてありがとう! – Farwa

+1

うれしい:) @FatimaMostafaハッピーコーディング。 – Sanoop

関連する問題