簡體   English   中英

Android-更改`BottomNavigationView``state_checked`顏色

[英]Android - Change `BottomNavigationView` `state_checked` color

是否可以更改每個標簽的狀態檢查顏色? 我可以通過將選擇器添加到BottomNavigation來更改BottomNavigation state_checked顏色。

我需要的是更改每個選項卡上的state_checked顏色。 如果我單擊BottomNavigation上的第一個圖標, BottomNavigation需要將state_checked圖標的顏色更改為綠色,在第二個圖標上,將顏色更改為紅色等。

底部導航視圖

    <android.support.design.widget.BottomNavigationView
    android:id="@+id/navigation"
    android:layout_width="match_parent"
    android:layout_height="120dp"
    android:layout_gravity="bottom"
    app:itemIconTint="@drawable/selector"
    app:itemTextColor="@drawable/selector"
    android:background="?android:attr/windowBackground"
    app:menu="@menu/navigation" />

選擇器.xml

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

現在state_checked顏色為綠色,默認顏色為灰色。

您可以通過-

public static StateListDrawable selectorForColor (int normalColor,int pressedColor) {
        StateListDrawable states = new StateListDrawable ();
        states.addState (new int[]{ android.R.attr.state_pressed }, 
           new ColorDrawable(pressed));
        states.addState (new int[]{ }, new ColorDrawable(normal));
        return states;
    }

BottomNavigation項目的onClick()內部調用此方法,並傳遞要為此項目設置的顏色。 您可以創建一個顏色array ,該顏色arrayBottomNavigation每個index處都具有該項目的BottomNavigation 此方法將return一個drawable對象,您可以將其設置為項目view

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM