Search code examples
androidmenuitemsubmenunavigationview

Item text colour of menu in android.support.design.widget.NavigationView is not getting changed


I am using android.support.design.widget.NavigationView to create side bar in my application.In my side bar I have menus and submenus to categorize the things.I want to change the item text colour to white.I have used NavigationView's setItemTextColour method for this.It changed the colour of submenus, but the colour of menu name i.e. title text colour of menu is not getting changed.is there any other method for that

       <item android:id="@+id/user_profile_group1"
        android:title="@string/help_and_settings"
        app:showAsAction="always"
        >
        <menu>
            <item android:id="@+id/user_profile"
                android:icon="@drawable/user_profile"
                android:title="@string/user_profile"
                app:showAsAction="always"
                />

            <item android:id="@+id/upgrade"
                android:icon="@drawable/upgrade"
                android:title="@string/upgrade"
                app:showAsAction="always"/>

            <item android:id="@+id/privacy_policy"
                android:title="@string/privacy_policy"
                android:icon="@drawable/privacy_policy"
                app:showAsAction="always"
                android:enabled="true"/>

            <item android:id="@+id/logout"
                android:title="@string/logout_small"
                android:icon="@drawable/logout"
                app:showAsAction="always"
                android:enabled="true"
                />

            <item android:id="@+id/about"
                android:title="@string/about_us"
                android:icon="@drawable/info"
                app:showAsAction="always"
                android:enabled="true"
                />

        </menu>



    </item>

Solution

  • You can use SpannableString to change the color of your menu item

    SpannableString str= new SpannableString("your text here");
    str.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.white))), 0, str.length(), 0);