a13xsus
@a13xsus
Lazy developer

Как в navigationView запретить изменение цвета текста для отдельных menu item?

Есть меню, к примеру такое:

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">

  <group android:id="@+id/nav_group_features"
			android:checkableBehavior="single">
    <item
        android:id="@+id/nav_dashboard"
        android:icon="@drawable/ic_dashboard"
        android:title="Dashboard" />
    <item
        android:id="@+id/nav_numbers"
        android:icon="@drawable/ic_event"
        android:title="Numbers" />
    <item
        android:id="@+id/nav_surveillance"
        android:icon="@drawable/ic_play_circle"
        android:title="Surveillance" />
  </group>
  <group android:id="@+id/nav_group_settings"
    android:checkableBehavior="single"
			>
    <item
        android:id="@+id/nav_settings"
        android:icon="@drawable/ic_forum"
        android:title="Settings" />
    <item android:id="@+id/nav_switch"        
        app:actionLayout="@menu/action_view_switch"
        android:title="Title"
        android:checkable="false"/>

  </group> 

</menu>


c0e999f6b7ec48918965f3c147c42936.jpg

Как видно, последний item имеет actionLayout, на котором есть свич. При клике по этому пункту цвет текста меняется на primary и таким остается до перезапуска приложения. Как это запретить? Если ставить enabled="false" для этого пункта, клик по свичу работает, но текст меню становится серым. checkableBehavior="none" тоже не помогает. Нужно, чтобы по клику именно по этому пункту цвет текста не менялся.
  • Вопрос задан
  • 282 просмотра
Решения вопроса 1
a13xsus
@a13xsus Автор вопроса
Lazy developer
Вижу как вариант — в navigationView.NavigationItemSelected() принудительно писать navigationView.Menu.FindItem(Resource.Id.nav_switch).SetChecked(false);

В принципе так нормально, но не костыль ли это?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы