我在这样的布局中定义了一个底部栏:
<com.google.android.material.bottomappbar.BottomAppBar
android:id="@+id/bottomBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
app:navigationIcon="@drawable/ic_menu_black_24dp" />
导航图标是从“新矢量可绘制”向导生成的常规图标。有没有办法对它应用色彩?
底部栏不是活动操作栏。
到目前为止,我已经尝试过:
textColorPrimary
颜色的主题controlColorNormal
颜色的主题如果有一种解决方案也适用于通过从XML加载菜单(使用inflateMenu()
或replaceMenu()
)提供的图标,那将是完美的。
答案 0 :(得分:1)
导航图标的颜色基于colorControlNormal
属性。
您可以使用以下方法覆盖它:
<com.google.android.material.bottomappbar.BottomAppBar
android:theme="@style/ThemeOverlay.BottomAppBar"
具有:
<style name="ThemeOverlay.BottomAppBar">
<item name="colorControlNormal">@color/....</item>
</style>
答案 1 :(得分:0)
要以编程方式更改导航图标的颜色,请将以下代码插入活动“ onCreate()”:
override fun onCreate(savedInstanceState: Bundle?) {
...
if (myIsLightTheme)
bottomBar.navigationIcon?.setColorFilter(Color.BLACK, PorterDuff.Mode.SRC_ATOP)
else
bottomBar.navigationIcon?.setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_ATOP)
...
}