2016-07-25 5 views
2

アプリケーションにボトムナビゲーションバーを追加する必要がありました。これはgithubで見つかったボトムバーライブラリを使用してうまく機能しました。ボトムバーライブラリ内のアイコンを変更するには

ただし、別の要件として、ボトムバーのアイコンをクリックしたときに変更する必要があります。私はこれを達成することができませんでした。誰もが、私が見ていたチュートリアルを1として

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; 

      } 
      } 
     }); 

を次のように私の実装がどのように私は

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

を達成することができ、それはメニューを追加したと私は私を助けることができます次のように入力します。これは、私のデモで使用した正確なコードです。 下記のスニペットに記載されています。

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

私はこれを利用しています: - '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のような機能があるので、1つの項目を押し込んだままにしておくことができます。 – lionscribe

関連する問題