как поменять цвет активного индикатора снизу навигаторапросмотр материала Вы? материал3

Я хочу изменить цвет выделенной области в материале 3 нижнего окна навигации, но цвет никак не меняется. Я пробовал селектор, фон, оттенок фона и стили. Все безуспешно

теперь так

это должно быть так

2 ответа

Вы можете изменить цвет индикатора, переопределив его стиль по умолчанию.

ItemIndicatorStyle по умолчанию:

      <style name="Widget.Material3.BottomNavigationView.ActiveIndicator" parent="">
<item name="android:width">@dimen/m3_bottom_nav_item_active_indicator_width</item>
<item name="android:height">@dimen/m3_bottom_nav_item_active_indicator_height</item>
<item name="marginHorizontal">@dimen/m3_bottom_nav_item_active_indicator_margin_horizontal</item>
<item name="shapeAppearance">@style/ShapeAppearance.Material3.NavigationBarView.ActiveIndicator</item>
<item name="android:color">?attr/colorSecondaryContainer</item>

просто переопределите стиль в соответствии с вашими предпочтениями:

      <style name="App.Custom.Indicator" parent="Widget.Material3.BottomNavigationView.ActiveIndicator">
    <item name="android:color">@color/blue</item>  
</style>

А затем добавьте эту строку в свой xml-код bottomNavigationView:

      app:itemActiveIndicatorStyle="@style/App.Custom.Indicator"

вы можете использовать эту функцию для изменения цвета индикатора:findViewById<BottomNavigationView>(R.id.bottomNavigationView) .itemActiveIndicatorColor = getColorStateList(R.color.white)

и установите эту аннотацию для вашей функции onCreate@RequiresApi(Build.VERSION_CODES.M) посмотрите на скриншот