I have implemented BottomNavigationView
which is available from the new support library 25.0.0. Here is my code for that
<android.support.design.widget.BottomNavigationView android:id="@+id/bottom_navigation" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" app:itemBackground="@color/colorPrimary" app:itemIconTint="@drawable/text" app:itemTextColor="@drawable/text" app:menu="@menu/bottom_navigation_main" />
And text.xml
drawable
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@android:color/white" android:state_enabled="true" /> <item android:color="@color/colorPrimaryDark" android:state_enabled="false" /> </selector>
With this code I am able to change text color when menu item is clicked, but when I apply same thing to app:itemBackground
it is showing error <item> tag requires a 'drawable' attribute or child tag defining a drawable
.
This is what I have tried for app:itemBackground
app:itemBackground="@drawable/text"
So my question is how can I change the background color of the selected menu item?
To set Android Button background color, we can assign android:backgroundTint XML attribute for Button in layout file with the required Color Value. To programmatically set or change Android Button background color, we may call pass the method Button.
Just use the method setBackgroundColor() of the badge.
Bottom navigation bars make it easy for users to explore and switch between top-level views in a single tap. They should be used when an application has three to five top-level destinations.
found an answer from this medium post
android:state_checked
instead of android:state_enabled
onNavigationItemSelected
you need to use return true
instead of return false
.and to set background, we cannot use android:color
in <item>
, we need to use android:drawable
So here how it looks xml file when you are setting it for app:itemTextColor
and app:itemIconTint
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@color/colorPrimaryDark" android:state_checked="true" /> <item android:color="@android:color/white" android:state_checked="false" /> </selector>
and to set app:itemBackground
selector
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/banner_white" android:state_checked="true"/> <item android:drawable="@drawable/banner_green" android:state_checked="false"/> </selector>
Here banner_white
and banner_green
are pngs.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With