2016-07-25 4 views
2

Мне нужно было добавить нижнюю панель навигации в мое приложение, которое я смог сделать очень хорошо, используя библиотеку-хранилище, которую я нашел в github.Как поменять иконку в библиотеке для бутылок

Однако еще одно требование состоит в том, чтобы поменять значки в виде узла, когда я нажимаю на него. Я не смог этого добиться. Может кто-нибудь помочь мне, как я могу достичь

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

Моя реализация выглядит следующим образом

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; 

      } 
      } 
     }); 

В соответствии учебник, который я видел, он сказал, чтобы добавить меню и я сделал как показано ниже. Это точный код, который я использовал в своей демонстрации. Его упоминается в нижеприведенном фрагменте.

<?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

какая библиотека вы используете? – Sharj

+0

Я пользуюсь этим: - compile 'com.roughike: bottom-bar: 1.2.1' – saunlogan

+0

Как выглядит ваш файл 'R.menu.bottom_home_menu'? – Sharj

ответ

0

У меня нет библиотеки, чтобы проверить, но, вероятно, вы можете установить для оригинального значка StateListDrawable, с различными изображениями для различных состояний.

Вам просто необходимо добавить этот файл в число доступных для скачивания и передать этот xml в качестве фона изображения.

<?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

Спасибо за сообщение, я добавил файл меню выше, не могли бы вы объяснить мне, как использовать тот, который вы упомянули выше. – saunlogan

+0

Создайте файл под названием «icon_home_hdpi_state.xml», скопируйте XML-сообщение, добавленное в него, просто изменив имена значков по мере необходимости. Затем в вашем файле меню измените имя значка на «icon_home_hdpi_state». – lionscribe

+0

Кроме того, мы надеемся, что ваша библиотека нижних баров имеет функцию setPressed, так что вы можете удерживать один элемент нажатым. Если нет, добавьте его самостоятельно. – lionscribe

 Смежные вопросы

  • Нет связанных вопросов^_^