Я хочу реализовать цветной BottomNavigationView
с elevation
(текущая версия библиотеки дизайна 25.2.0, тестовое устройство 7.1.2). Некоторый код для запуска:
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="bottom"
android:elevation="8dp"
app:elevation="8dp"
app:menu="@menu/bottom_navigation" />
высота (тень) не рисуется, потому что нет фона. и есть известная проблема, что этот фон должен быть белым ... хорошо, я добавляю эту строку
android:background="@android:color/white"
но я хотел установить цвет для фона и белых значков и текста... с нижними строками
app:itemIconTint="@color/white"
app:itemTextColor="@color/white"
вся полоса полностью белая, включая содержимое, очевидно... поэтому, если background
также должен быть белым, давайте изменим фон каждого элемента с помощью
app:itemBackground="@drawable/bottom_navigation_item_background"
и для рисования/
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/mycolor_dark"/>
<item android:drawable="@color/mycolor"/>
</selector>
для drawable-v21/ (пульсация)
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@android:color/white">
<item android:drawable="@color/mycolor"/>
</ripple>
и теперь у нас есть цветные предметы и... снова нет возвышения! и это будет работать, когда mycolor
будет белым (высота показана/нарисована)... поэтому, когда я хочу высоту для BottomNavigationView
, и background
, и itemBackground
должны быть белыми...
интересная часть (доказательство проблемы?) — давайте проверим высоту только с помощью этого селектора:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@android:color/white"/>
<item android:drawable="@color/mycolor"/>
</selector>
бар рисуется вообще без возвышения, но когда я нажимаю на любой пункт меню, то его фон меняется на белый и... над этим пунктом есть возвышение, ТОЛЬКО этот пункт!
когда я удаляю строку <item android:drawable="@color/mycolor"/>
из файла drawable-v21/ XML (или устанавливаю mycolor
белым), отображается высота. цвет пульсации не имеет значения, он может быть белым или любым другим (рабочим).
вопрос: как стилизовать BottomNavigationView
с помощью пользовательского цвета фона, чтобы высота работала?