#android #xml #navigation
Вопрос:
Я хотел бы отключить первый пункт меню BottomNavigation. Я попробовал сделать это таким образом:
bottomNavigationView.getMenu().getItem(0).setEnabled(false);
Я использовал стиль для отключенных элементов. Стиль, похоже, работает для всех элементов, кроме первого элемента. Я также попытался перевести элемент в отключенное состояние, отредактировав xml. Но кнопка всегда выглядит одинаково.
Вот мой XML для оформления меню:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/secondaryColor" android:state_checked="true"/>
<item android:color="@color/secondaryColor" android:state_enabled="true"/>
<item android:color="#BEBEBE" android:state_enabled="false"/>
</selector>
И это меню:
<com.google.android.material.bottomnavigation.BottomNavigationView
android:layout_alignParentBottom="true"
app:labelVisibilityMode="labeled"
android:id="@ id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:itemIconTint="@drawable/tab_items"
app:itemTextColor="@drawable/tab_items"
app:menu="@menu/navigation_portfolio_view" />
Навигация определяется таким образом:
<menu
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@ id/item1"
android:enabled="false"
android:icon="@drawable/ic_baseline_notifications_24"
android:title="Item 1"/>
<item
android:id="@ id/item2"
android:icon="@drawable/ic_baseline_home_24"
android:title="Item 2"/>
<item
android:id="@ id/item3"
android:enabled="true"
android:icon="@drawable/ic_baseline_person_add_24"
android:title="Item 3"/>
<item
android:id="@ id/additional_features"
android:enabled="false"
android:icon="@drawable/ic_baseline_pending_24"
android:title="Additional features"/>
</menu>
У вас есть какие-либо идеи, почему первый элемент не может быть изменен (с помощью кода или XML)? Он должен быть выделен серым цветом.
Ответ №1:
это потому, что первый пункт в меню также сначала «отмечен».
в вашем файле «tab_items» — вы можете удалить строку :
<item android:color="@color/secondaryColor" android:state_checked="true"/>
и тогда значок станет серым.