我想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
使用自定义颜色设置背景以保持高程工作?