活动/非活动时更改菜单项颜色

lxkprmvk  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(379)

我有3个菜单项,想改变它们的样式。
我已经将itemicontent和color设置为紫色,现在所有的项目/文本都是相同的颜色,不管它们是否处于活动状态。
如何通过编程实现这一点?
这是我的主要活动

<com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottom_navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@color/white"
        app:itemIconSize="22dp"
        app:menu="@menu/bottom_navigation"
        app:itemIconTint="@color/purple_500"
        app:itemTextColor="@color/purple_500"/>

底部导航:

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/nav_live"
        android:icon="@drawable/ic_baseline_live_tv_24"
        android:title="@string/LIVE"/>

    <item
        android:id="@+id/nav_articles"
        android:icon="@drawable/ic_outline_article_24"
        android:title="@string/news" />

    <item
        android:id="@+id/nav_notification"
        android:icon="@drawable/ic_baseline_notifications_none_24"
        android:title="@string/subscribe"/>

</menu>

以及我在stackoverflow上找到的代码(也许我对这一条的看法是正确的?)

public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.nav_live:
                navLive();
                return true;
            case R.id.nav_articles:
                navArticles;
                return true;
            case R.id.nav_notification:
                onMenuItemSelected()
                return true;
            default:
                return: super.onOptionsItemSelected(item);
        }
    }
s6fujrry

s6fujrry1#

你可以通过使用一个可绘制的。
可绘制/底部\u tab \u color.xml

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

    <item
        android:color="@color/colorActive"
        android:state_selected="true"
        android:state_checked="true"/>

    <item
        android:color="@color/colorInactive"/>

</selector>
``` `state_selected` 以及 `state_checked` 如果是活动选项卡,则应为true。在你的房间里用这个抽屉 `bottomNavigationView` .

<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottomNavigation"
android:layout_width="match_parent"
android:layout_height="@dimen/bottom_nav_height"
app:itemTextColor="@drawable/bottom_tab_color"
app:itemIconTint="@drawable/bottom_tab_color"
app:menu="@menu/bottom_nav_menu" />

它工作得很好!

相关问题