Intereting Posts
Переупорядочить страницы в FragmentStatePagerAdapter, используя getItemPosition (объект Object) EditText: отключить всплывающее меню «Вставить / Заменить» в меню «Выбор текста». Уведомление для музыкального плеера Android Лучший планшет Android для разработки Откройте страницу сведений о Google Play для приложения с помощью переадресации javascript из браузера android. Как программно изменить основной цвет в Android L Лучший способ избежать дублирования кода, если два класса, расширяющие разные классы Диалоговое окно «Спаривание Bluetooth» Android – сборка отдельных APK для разных процессорных архитектур ACCESS_FINE_LOCATION Разрешения AndroidManifest не предоставляются Как создать пользовательский веб-просмотр в Android? Горизонтальный линейный градиент с android Почему элементы меню опций сжаты, если я использую библиотеку поддержки 26? Производительность Android ContentProvider При нажатии кнопки меню происходит сбой приложения при действиях переполнения на API 7

Изменение навигации Просмотр цвета элемента Динамически Android

Я хотел бы создать ящик для навигации, где каждый элемент имеет другой цвет выделения (цвет и цвет текста), так как в игровом магазине google есть:

Введите описание изображения здесь

Я не уверен, как они решили это, я думаю, что они используют разные действия с разными ящиками. Я хочу использовать фрагменты, и я хочу изменить цвет значка и цвет текста. Любые идеи, как я могу это сделать? Я использую библиотеку поддержки дизайна Google и макет ящика с навигационным видом.

Solutions Collecting From Web of "Изменение навигации Просмотр цвета элемента Динамически Android"

Используйте app:itemIconTint в вашем NavigationView для значков и используйте app:itemTextColor для textColors

Образец :

drawable/navigation_text_color :

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- This is used when the Navigation Item is checked --> <item android:color="#009688" android:state_checked="true" /> <!-- This is the default text color --> <item android:color="#E91E63" /> </selector> 

И layout :

 <android.support.design.widget.NavigationView . . app:itemTextColor="@drawable/navigation_text_color"/> 

Если динамически вы имеете в виду программно, вы можете попробовать следующее:

 // FOR NAVIGATION VIEW ITEM TEXT COLOR int[][] states = new int[][]{ new int[]{-android.R.attr.state_checked}, // unchecked new int[]{android.R.attr.state_checked}, // checked new int[]{} // default }; // Fill in color corresponding to state defined in state int[] colors = new int[]{ Color.parseColor("#747474"), Color.parseColor("#007f42"), Color.parseColor("#747474"), }; ColorStateList navigationViewColorStateList = new ColorStateList(states, colors); // apply to text color navigationView.setItemTextColor(navigationViewColorStateList); // apply to icon color navigationView.setItemIconTintList(navigationViewColorStateList); 

Таким образом, вы можете определить несколько цветов для разных параметров, таких как День или Ночь.

Finllay я получил ответ,

Вы должны изменить colorAccent в файле цветов, который вам нужен всегда:

  <color name="colorAccent">whichever color required</color> 

Это решение работало для меня

  <android.support.design.widget.NavigationView . . app:itemIconTint="@color/your_selector_file_name" // for Icon app:itemTextColor="@color/your_selector_file_name" // for text /> 

Добавление к тому, что сказал @DAVOOD. Следующий цветной селектор работал для меня.

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- This is used when the Navigation Item is checked --> <item android:color="@color/tenoBrandColor" android:state_pressed="true" /> <!-- This is the default text color --> <item android:color="@color/textprimary" /> </selector>