android 底部导航栏的 png 图标

Mub*_*Ali 6 android kotlin material-design bottomnavigationview

在“我的底部”导航栏中,我使用菜单 XML 中的图标,图标颜色在选择时随主题颜色而变化。

选项卡单击后图标完全改变,我完全不明白为什么 png 图像会发生这种情况。

底部导航

<com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:background="@color/white"
        app:labelVisibilityMode="labeled"
        app:itemBackground="@color/transparent"
        app:itemTextColor="@color/black"
        app:layout_constraintBottom_toBottomOf="parent"
        app:menu="@menu/bottom_navigation_main" />
Run Code Online (Sandbox Code Playgroud)

选择器

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_compas"
        android:state_checked="false"/>
    <item android:drawable="@drawable/discover_green"
        android:state_enabled="true"/>
</selector>
Run Code Online (Sandbox Code Playgroud)

底部导航菜单

 <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">
        <item
            android:id="@+id/chatMenuFragment"
            android:enabled="true"enter code here
            android:icon="@drawable/chat_selector"
            android:title="Chat"
            app:showAsAction="always" />
        <item
            android:id="@+id/contactsFragment"
            android:enabled="true"
            android:icon="@drawable/people_selector"
            android:title="People"
            app:showAsAction="always" />
        <item
            android:id="@+id/discoverFragment"
            android:enabled="true"
            android:icon="@drawable/discover_selector"
            android:title="Discovery"
            android:backgroundTint="@color/white"
            app:showAsAction="always|withText" />
        <item
            android:id="@+id/myProfileFragment"
            android:enabled="true"
            android:icon="@drawable/user_selector"
            android:title="My"
            app:showAsAction="always|withText" />
    </menu>
Run Code Online (Sandbox Code Playgroud)

截图

选型前:

在此输入图像描述

选择后:

在此输入图像描述

小智 5

我遇到了类似的问题,问题是默认情况下底部导航视图会为可绘制对象添加色调并填充所有不透明的内容(例如资产的情况)。

尝试添加这一行 bottomNavigationView.itemIconTintList = null


Abh*_*han 2

“@drawable/discover_green”检查这个drawble,这是你按下指南针后得到的吗?

您正在使用可绘制的状态列表,因此当您按指南针时,图标会更改为discover_green,它与您定义的相同。解决方案是完全删除状态列表绘图并仅使用图标或将绿点图标更改为您想要使用的图标。