【问题标题】:Item text colour of menu in android.support.design.widget.NavigationView is not getting changedandroid.support.design.widget.NavigationView 中菜单的项目文本颜色没有改变
【发布时间】:2015-08-07 06:15:27
【问题描述】:

我正在使用 android.support.design.widget.NavigationView 在我的应用程序中创建侧边栏。在我的侧边栏中,我有菜单和子菜单来对事物进行分类。我想将项目文本颜色更改为白色。我有为此使用了 NavigationView 的 setItemTextColour 方法。它改变了子菜单的颜色,但菜单名称的颜色,即菜单的标题文本颜色没有改变。还有其他方法吗

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

【问题讨论】:

    标签: android menuitem submenu navigationview


    【解决方案1】:

    您可以使用SpannableString 更改菜单项的颜色

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

    【讨论】:

    • 在需要的颜色中,我需要传递颜色的资源ID吗?,目前我作为getResources().getColor(R.color.white)传递
    • 你需要像下面这样给出跨度 str.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.white)), 0, str.length(), 0);跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    相关资源
    最近更新 更多