【发布时间】:2022-10-04 18:02:20
【问题描述】:
当尝试将图标更改为下载的可绘制对象(或在运行时实际更改为任何其他图标)时,图标会在 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 上。
预期结果:BottomNav 图标将是右上角显示的图像。
谢谢
编辑!
膨胀包含 BottomNavView 的 main_activity 布局后,问题已得到修复
现在图片没有正确显示的问题,附上截图(图像是灰色的,而不是像第一张图片中的 ActionBar 那样显示图标):
编辑 2
图标仍然是灰色的,而不是显示位图图片。 添加:
MenuItemCompat.setIconTintMode(bottomNavigationView.getMenu().getItem(2), PorterDuff.Mode.CLEAR);
但它仍然显示如下图所示
【问题讨论】:
-
值得一提的是,setTitle 也不适用于 BottomNav。但 setBackground 有效。
标签: java android android-studio