BottomNavigationView - Как отключить выделение выделенного значка - PullRequest
0 голосов
/ 31 января 2020

У меня есть вид снизу навигации, который устанавливает значок в зависимости от состояния, если он отмечен или нет.

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/icon_tree"
        android:title="Tree"
        android:icon="@drawable/bottomnav_icon_home">
    </item>

</menu>

bottomnav_icon_home:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/icon_home_black" android:state_checked="false"/>
    <item android:drawable="@drawable/icon_home_green" android:state_checked="true"/>

</selector>

enter image description here

Как только нижняя навигация автоматически выделяет значок, когда android: state_checked - true.

enter image description here

Как полностью отключить Подсветка выбора значка bottomnavigation?

Я пытался установить app:itemIconTint="@drawable/bottom_navigation_selector" на @null, но это не работает

<com.google.android.material.bottomnavigation.BottomNavigationView
            android:id="@+id/bottom_navigation"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:menu="@menu/bottom_navigation_menu"
            android:background="@color/colorWhite"
            app:itemTextColor="@drawable/bottom_navigation_selector"
            app:itemIconSize="28dp"
            app:itemIconTint="@drawable/bottom_navigation_selector"
            app:labelVisibilityMode="labeled"/>

bottom_navigation_selector:

<?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/forestGreen" />
    <item android:color="@color/colorBlack" />
</selector>

Ответы [ 3 ]

1 голос
/ 06 февраля 2020

Если я вас правильно понял, android по умолчанию устанавливает оттенок на ваших нижних значках навигации при выборе, и вы хотели бы, чтобы он был удален вправо.

Я знаю, как это сделать в вашем java класс не xml хотя.

Вам необходимо установить setItemIconTintList метод вашего BottomNavigationView на null. Поэтому в любом месте, где вы устанавливаете макет, напишите код:

BottomNavigationView btmNav = findViewById(R.id.bottom_navigation);
btmNav.setItemIconTintList(null);

Дайте нам знать, если это работает для вас.

1 голос
/ 06 февраля 2020

попробуйте добавить эту строку в размерности. xml

<dimen name="design_bottom_navigation_active_text_size" tools:override="true">@dimen/design_bottom_navigation_text_size</dimen>
0 голосов
/ 06 февраля 2020

Вы планируете создать собственную реализацию bottomNavigation? Когда я реализовал Google BottomNavigationView, у меня возникло много проблем, поэтому я создал новую, например, такую:

<LinearLayout android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="vertical"
              android:layout_alignParentBottom="true">

    <View android:layout_width="match_parent"
          android:layout_height="1dp"
          android:background="@color/grayBottomNavigationDelimiter"/>

    <RadioGroup android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/colorNavigationBar"
                android:orientation="horizontal">

        <android.support.v7.widget.AppCompatRadioButton
            android:id="@+id/homeButton"
            android:drawableTop="@drawable/ic_home_black_24dp"
            android:text="@string/navigation_home_text"
            style="@style/RadioButtonStyle"/>
...

Итак, можно увидеть, что это проще, чем представить, не так ли?

...