2016-07-25 12 views
2

Ich musste untere Navigationsleiste in meiner App hinzufügen, die ich sehr gut mit der Basisbar-Bibliothek, die ich in Github gefunden hatte.Wie ändere ich das Symbol in der unteren Leiste Bibliothek

Eine andere Anforderung ist jedoch, die Symbole der unteren Leiste zu ändern, wenn ich darauf klicke. Das habe ich nicht geschafft. Kann mir jemand helfen, wie kann ich die

Like on clicking home the home button is green, other wise its not highlighted

erreichen Meine Implementierung ist als

bottomBar = BottomBar.attach(view,savedInstanceState); 
     bottomBar.useDarkTheme(false); 

     bottomBar.setItemsFromMenu(R.menu.bottom_home_menu, new OnMenuTabSelectedListener() { 

     @Override 
     public void onMenuItemSelected(@IdRes int menuItemId) { 
     switch (menuItemId){ 
     case R.id.menu_home: 
     Snackbar.make(view,"Home tab",Snackbar.LENGTH_SHORT).show(); 
     break; 

     case R.id.menu_to_do: 
     Snackbar.make(view,"To Do tab",Snackbar.LENGTH_SHORT).show(); 
     break; 

     case R.id.menu_add_books: 
     Snackbar.make(view,"Add",Snackbar.LENGTH_SHORT).show(); 
     break; 

     case R.id.menu_notification: 
     Snackbar.make(view,"Notification",Snackbar.LENGTH_SHORT).show(); 
      break; 

     case R.id.menu_profile: 
     Snackbar.make(view,"Profile",Snackbar.LENGTH_SHORT).show(); 
     break; 

      } 
      } 
     }); 

Gemäß einem Tutorial folgt, die ich gesehen hatte, sagte es ein Menü hinzufügen und ich habe wie unten gezeigt. Dies ist der genaue Code, den ich in meiner Demo verwendet habe. Es ist in dem folgenden Snippet erwähnt.

<?xml version="1.0" encoding="utf-8"?> 
    <menu xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item 
      android:id="@+id/menu_home" 
      android:icon="@drawable/icon_home_hdpi" 
      android:title="Home"/> 
     <item 
      android:id="@+id/menu_to_do" 
      android:icon="@drawable/icon_todo_hdpi" 
      android:title="To Do"/> 
     <item 
      android:id="@+id/menu_add_books" 
      android:icon="@drawable/icon_add_hdpi" 
      android:title="Add"/> 
     <item 
      android:id="@+id/menu_notification" 
      android:icon="@drawable/icon_notification_hdpi" 
      android:title="Notification"/> 
     <item 
      android:id="@+id/menu_profile" 
      android:icon="@drawable/icon_profile_hdpi" 
      android:title="Profile"/> 

    </menu> 
+1

Welche Bibliothek verwenden Sie? – Sharj

+0

Ich benutze dies: - compile 'com.roughike: bottom-bar: 1.2.1' – saunlogan

+0

Wie sieht Ihre Datei 'R.menu.bottom_home_menu" aus? – Sharj

Antwort

0

Ich habe nicht die Bibliothek zu testen, aber wahrscheinlich können Sie für das ursprüngliche Symbol eines StateListDrawable, mit verschiedenen Bildern für verschiedene Zustände annehmen.

Sie müssen nur diese Datei als Zeichen hinzufügen und diese XML als Bildhintergrund geben.

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/numpad_button_bg_selected" android:state_selected="true"></item> 
    <item android:drawable="@drawable/numpad_button_bg_pressed" android:state_pressed="true"></item> 
    <item android:drawable="@drawable/numpad_button_bg_normal"></item> 
</selector> 
+0

Danke für das Posten, ich habe oben meine Menü-Datei hinzugefügt, können Sie mir bitte erklären, wie Sie die oben erwähnte verwenden. – saunlogan

+0

Erstellen Sie eine ausklappbare Datei namens icon_home_hdpi_state.xml, kopieren Sie den oben angegebenen XML-Code hinein und ändern Sie einfach die Namen der Symbole nach Bedarf. Ändern Sie dann in Ihrer Menü-Datei den Icon-Namen in icon_home_hdpi_state. – lionscribe

+0

Auch hoffentlich hat Ihre untere Leiste Bibliothek eine Funktion wie setPressed, so dass Sie ein Element gedrückt halten können. Wenn nicht, fügen Sie es selbst hinzu. – lionscribe