AndroidX BottomAppBar导航图标颜色

Spa*_*son 6 android material-design android-bottomappbar androidx

我在布局中定义了一个底栏:

<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" />
Run Code Online (Sandbox Code Playgroud)

导航图标是从"new vector drawable"向导生成的通用图标.有没有办法对它应用色调?

底栏不是活动操作栏.

到目前为止我尝试过的:

  • 应用了一个覆盖textColorPrimary颜色的主题
  • 应用了一个覆盖controlColorNormal颜色的主题

如果有一个解决方案也适用于通过从XML加载菜单(使用inflateMenu()replaceMenu())提供的图标,那将是完美的.

Gre*_*ory 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)
   ...
}
Run Code Online (Sandbox Code Playgroud)