[英]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
,該顏色array
在BottomNavigation
每個index
處都具有該項目的BottomNavigation
。 此方法將return
一個drawable
對象,您可以將其設置為項目view
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.