gpt4 book ai didi

android - 更改抽屉导航中选中菜单项的颜色

转载 作者:IT老高 更新时间:2023-10-28 13:06:12 25 4
gpt4 key购买 nike

我正在使用新的 Android 设计支持库在我的应用程序中实现抽屉式导航。

我不知道如何更改所选项目的颜色!

这是菜单的xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/navigation_item_1"
android:icon="@drawable/ic_1"
android:title="@string/navigation_item_1"/>

<item
android:id="@+id/navigation_item_2"
android:icon="@drawable/ic_2"
android:title="@string/navigation_item_2"/>
</group>

这是放置在 android.support.v4.widget.DrawerLayout 内的 navigationview xml:

<android.support.design.widget.NavigationView
android:id="@+id/activity_main_navigationview"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/drawer_header"
app:itemIconTint="@color/black"
app:itemTextColor="@color/primary_text"
app:menu="@menu/menu_drawer">

<TextView
android:id="@+id/main_activity_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:textColor="@color/primary_text" />

</android.support.design.widget.NavigationView>

感谢您的帮助!

[编辑]我已经看过这样的解决方案:Change background color of android menu .

这似乎是一个 hack,我认为使用新的设计支持库会引入一些更清洁的东西?

最佳答案

您可以使用 Color State Resource 来实现此目的.如果您注意到您正在使用的 NavigationView 内部

app:itemIconTint="@color/black"
app:itemTextColor="@color/primary_text"

这里不使用 @color/black@color/primary_test,而是使用 Color State List Resource。为此,首先在 color 目录(应该在 res 目录内)创建一个新的 xml(例如,drawer_item.xml)。如果你不'还没有一个名为 color 的目录,创建一个。

现在在 drawer_item.xml 里面做这样的事情

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="checked state color" android:state_checked="true" />
<item android:color="your default color" />
</selector>

最后一步是更改您的 NavigationView

<android.support.design.widget.NavigationView
android:id="@+id/activity_main_navigationview"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/drawer_header"
app:itemIconTint="@color/drawer_item" // notice here
app:itemTextColor="@color/drawer_item" // and here
app:itemBackground="@android:color/transparent"// and here for setting the background color to tranparent
app:menu="@menu/menu_drawer">

像这样,您可以为 IconTintItemTextColorItemBackground 使用单独的颜色状态列表资源。

现在,当您将项目设置为选中(在 xml 中或以编程方式)时,特定项目的颜色将与未选中的不同。

关于android - 更改抽屉导航中选中菜单项的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30886453/

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