gpt4 book ai didi

android - 如何使用java以编程方式更改抽屉导航上所选菜单项的文本和图标颜色

转载 作者:IT王子 更新时间:2023-10-28 23:34:10 25 4
gpt4 key购买 nike

我是 Android 开发的初学者。使用 android 的默认抽屉导航 Activity 我正在开发一个应用程序。此应用程序的要求之一是在运行时随机更改布局的背景颜色(包括抽屉导航标题颜色)。

现在一切正常,只是抽屉导航上所选菜单项的颜色仍然是蓝色。像这样:

enter image description here

现在我想要的是其他布局的背景颜色是粉红色导航栏上选定的菜单项也应该是粉红色(我的意思是文本颜色和图标应该是粉红色),如下所示:

enter image description here

谁能告诉我如何在代码中以编程方式实现它,因为我必须在运行时随机更改选定的文本和图标颜色。

这里是菜单 xml 文件供引用:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">


<group android:checkableBehavior="single">
<item
android:id="@+id/nav_quiz_all"
android:icon="@drawable/ic_public_black_24dp"
android:checked="true"
android:title="All Countries Quiz"/>
<item
android:id="@+id/nav_quiz_bookmarked"
android:icon="@drawable/ic_favorite_black_24dp"
android:title="Favorite Quiz"/>
</group>


<item android:title="Communicate">
<menu>
<item
android:id="@+id/nav_rate"
android:icon="@drawable/ic_star_black_24dp"
android:title="Rate this app"/>
<item
android:id="@+id/nav_share"
android:icon="@drawable/ic_share_black_24dp"
android:title="Share"/>
<item
android:id="@+id/nav_feedback"
android:icon="@drawable/ic_feedback_black_24dp"
android:title="Feedback"/>
<item
android:id="@+id/nav_about"
android:icon="@drawable/ic_info_black_24dp"
android:title="About"/>
</menu>
</item>


<item
android:id="@+id/nav_settings"
android:icon="@drawable/ic_settings_black_24dp"
android:title="Settings"/>

</menu>

最佳答案

首先检查下面的 NavigationView

<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
android:background="@color/white"
app:itemIconTint="@drawable/drawer_item_color"
app:itemTextColor="@drawable/drawer_item_color"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />

在这里检查两件事

app:itemIconTint="@drawable/drawer_item_color"
app:itemTextColor="@drawable/drawer_item_color"

这两个标签都使用 drawer_item_color.xml 这是可绘制文件夹中的选择器,下面是它的代码

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/pink" android:state_checked="true" />
<item android:color="@color/black" />
</selector>

使用选择器并添加您想要的颜色。这将为您完成这项工作。

关于android - 如何使用java以编程方式更改抽屉导航上所选菜单项的文本和图标颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42700908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com