found an answer from this medium post
- We need to use
android:state_checkedinstead ofandroid:state_enabled - within
onNavigationItemSelectedyou need to usereturn trueinstead ofreturn 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.