Intereting Posts
Добавление пользовательского ввода из «Редактировать текст в список» Неправильное поведение с увеличением на картах Google Android Слушайте новые события календаря Не удалось получить требуемый номер версии ADT из Запрос, резервное копирование, удаление, вставка Контакты на Android Как использовать элементы управления Xamarin.Form и собственные элементы управления На той же странице Как я могу сделать макет, который будет работать как на планшете, так и на телефоне? При запуске не выводится команда: 'am start -n Поиск в ListView с помощью EditText Внедрение WS-Discovery для Android Можно ли указать границу в андроидной кнопке? Android gradle Локальный путь не существует Изображение камеры для растрового изображения приводит к испорченному изображению Android: исключение из-за исключения из памяти. Как проверить объекты? Почему мой контекст в моем фрагменте отсутствует?

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

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

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

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

Используйте 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>