BottomNavigationView дизайн с XML * не программно - PullRequest
1 голос
/ 10 июля 2019

Добрый день.Как изменить значок и цвет текста (активный и неактивный), используя XML?

<android.support.design.widget.BottomNavigationView
            android:id="@+id/nav_view"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="@color/colorPrimaryDark"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:menu="@menu/bottom_nav_menu"
    />

Ответы [ 2 ]

1 голос
/ 10 июля 2019

Попробуйте это:

<com.google.android.material.bottomnavigation.BottomNavigationView
    android:id="@+id/bottom_navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:background="@color/colorPrimary"
    app:itemIconTint="@color/nav_state_list"
    app:itemTextColor="@color/nav_state_list"
    app:layout_behavior="@string/hide_bottom_view_on_scroll_behavior"
    app:menu="@menu/menu_category" />

Внутри drawable создайте color папку и поместите nav_state_list файл:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/yourColor" android:state_checked="true"></item>
    <item android:color="@color/yourColor" android:state_checked="false"></item>
</selector>
1 голос
/ 10 июля 2019

Для текста добавьте эти две строки в BottomNavigationView:

app:itemTextAppearanceActive="@style/tabbar_text_active"
app:itemTextAppearanceInactive="@style/tabbar_text_inactive"

и создайте для них стиль в style.xml

<style name="tabbar_text_active" parent="TextAppearance.AppCompat.Small">
    <item name="android:textSize">12sp</item>
    <item name="android:textColor">@color/primaryLight</item>
</style>

<style name="tabbar_text_inactive" parent="TextAppearance.AppCompat.Small">
    <item name="android:textSize">12sp</item>
    <item name="android:textColor">@color/textLight</item>
</style>

Для значка

app:itemIconTint="@drawable/bottom_nav_colors"

с выдвижным ящиком:

<?xml version="1.0" encoding="utf-8"?>
   <selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_checked="true" android:color="@color/primaryLight" />
   <item android:color="@color/textLight" />
</selector>
...