当try 将图标更改为下载的可绘制文件(或在运行时实际更改为任何其他图标)时,该图标会在ActionBar上更改一次.

我实际上想删除ActionBar,只保留底部导航(标签),但无论我在做什么,图标都只在ActionBar上更改.

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上保持空白,但在ActionBar上显示.

enter image description here

预期结果:BottomNav图标将是右上角显示的图像.

谢谢

EDIT!

在inflating 包含BottomNavView的Main_Activity布局后,问题已修复

现在,图片不能正常显示的问题,附加了一个屏幕截图(图像是灰色的,而不是像第一张图片中的ActionBar中那样显示图标):

enter image description here

Edit 2

图标仍然是灰色的,而不是显示位图图片. 新增:

MenuItemCompat.setIconTintMode(bottomNavigationView.getMenu().getItem(2), PorterDuff.Mode.CLEAR);

但它仍然如下图所示

enter image description here

Edit 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)

Java相关问答推荐

int Array Stream System. out. print方法在打印Java8时在末尾添加% sign

如何在访问完所有文件后加入所有线程?

参数值[...]与预期类型java.util.Date不匹配

具有多种令牌类型和段的复杂Java 17正则表达式

与不同顺序的组进行匹配,不重复组但分开

我如何知道MediaDiscoverer何时完成发现介质?

如何在Java记录中设置BigDecimal类型属性的精度?

带错误BER验证的itext8签名返回pdf

使用OAuth 2.0资源服务器JWT时的授权(授权)问题

使用Jackson库反序列化json

Spring动态反序列化JSON可以是列表,也可以只是一个对象

Android应用程序为错误的显示类型 Select 尺寸文件

带有可选部分的Java DateTimeForMatter

如何在IntelliJ IDEA的Build.sbt中添加外部JAR文件?

如何将RESTAssured';S的Http标题转换为<;字符串、字符串和>的映射?

使用Java线程进行并行编程

为什么我得到默认方法的值而不是被覆盖的方法的值?

SonarQube在合并升级到java17后对旧代码提出错误

如何调查进程列表中不可见的活跃 MySQL 事务?

单例模式中热切初始化和惰性初始化的区别