При попытке изменить значок на загруженный рисуемый объект (или при фактическом изменении на любой другой значок во время выполнения) значок меняется один раз на панели действий.
На самом деле я хочу удалить панель действий и оставить для навигации только нижнюю часть навигации (вкладки), но что бы я ни делал, значок меняется только на панели действий.
Элемент внутри bottom_nav_menu.xml:
<item
android:id = "@+id/navigation_notifications"
android:icon = "@drawable/ic_dashboard_black_24dp"
android:title = "@string/title_notifications"
app:showAsAction = "ifRoom"/>
Код, меняющий иконку:
@Override
public boolean onPrepareOptionsMenu (Menu menu){
menu.clear();
getMenuInflater().inflate(R.menu.bottom_nav_menu, menu);
menu.getItem(2).setIcon(this.bitmap_pic);
Log.e(TAG, "Icon Changed");
return super.onPrepareOptionsMenu(menu);
}
В результате значок остается пустым в BottomNav, но появляется на панели действий.
Ожидаемый результат: значок BottomNav будет изображением, показанным в правом верхнем углу.
Спасибо
РЕДАКТИРОВАТЬ!
Проблема устранена после раздувания макета main_activity, содержащего BottomNavView.
Теперь проблема с изображением, которое не отображается должным образом, прикрепил скриншот (изображение серое, а не показывает значок, как на панели действий на первом изображении):
Редактировать 2
Значок по-прежнему серый, а не показывает растровое изображение. Добавлен:
MenuItemCompat.setIconTintMode(bottomNavigationView.getMenu().getItem(2), PorterDuff.Mode.CLEAR);
Но он все еще отображается, как на картинке ниже
Редактировать 3
Исправлена проблема с помощью:
bottomNavigationView.setItemIconTintList(null);




Я не уверен, что onPrepareOptionsMenu вызывается для нижней панели навигации.
Вам нужно будет обновить значок меню навигации из метода onCreate этого действия.
См. ниже код,
val menu = navigation.menu
val menuItem = menu.findItem(R.id.navigation_notifications) // find particular menu-item using its ID.
menuItem?.icon = this.bitmap_pic
Решение для серого оттенка значка, добавить строку ниже.
MenuItemCompat.setIconTintMode(menuItem, PorterDuff.Mode.DST)
На самом деле нашел проблему, setContentView(R.layout.activity_main) устранил проблему. я отредактировал вопрос
A Все еще не работает, обновил свой вопрос
Важно отметить, что setTitle также не работает с BottomNav. но setBackground работает.