Цвет значка навигации AndroidX BottomAppBar
Я определил нижнюю панель в макете следующим образом:
<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 ответов
Цвет значка навигации основан на colorControlNormal
атрибут.
Вы можете переопределить это, используя:
<com.google.android.material.bottomappbar.BottomAppBar
android:theme="@style/ThemeOverlay.BottomAppBar"
с участием:
<style name="ThemeOverlay.BottomAppBar">
<item name="colorControlNormal">@color/....</item>
</style>
Чтобы программно изменить цвет значка навигации, вставьте в действие 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)
...
}