[英]Android: Change color of navigationView selected item programatically
我創建了一個帶有導航視圖的抽屜。 在活動的另一部分,我有一個按鈕。 當我單擊此按鈕時,我希望導航視圖中的選定項目更改其顏色。 你知道怎么做嗎?
編輯:現在我嘗試了此:
private void changeNavigationColor(int resColor){
int[][] state = new int[][] {
new int[] {android.R.attr.state_checked} // unchecked
};
int[] color = new int[] {
getResources().getColor(resColor)
};
ColorStateList colorStateList= new ColorStateList(state, color);
navigationView.setItemTextColor(colorStateList.getColorForState());
navigationView.setItemIconTintList(colorStateList);
}
但是它正在更改整個colorListState,而我只想更改它的檢查狀態
做這個 :
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/nav_header_dashboard"
app:itemIconTint="@drawable/drawer_item" // add this
app:itemTextColor="@drawable/drawer_item" // add this
app:menu="@menu/activity_dashboard_drawer" />
drawer_item.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="AFTER_CLICK_CHANGE_COLOR_TEXT" android:state_checked="true" />
<item android:color="NAVIGATION_DRAWER_TEXT_COLOR" />
</selector>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.