我想用BottomNavigationView
实现彩色elevation
(当前设计lib版本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" />
未绘制高程(阴影),因为没有背景。并且known issue此背景必须为白色 ...确定,所以我添加此行
android:background="@android:color/white"
但我想为背景和白色图标和文字设置一些颜色......下面的行
app:itemIconTint="@color/white"
app:itemTextColor="@color/white"
整条是纯白色,包括内容,很明显...所以如果background
必须是白色的,那么让我们改变每个项目的背景
app:itemBackground="@drawable/bottom_navigation_item_background"
和drawable /
<?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>
for drawable-v21 /(ripple)
<?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>
栏根本没有高程绘制,但是当我按任何菜单项时,它的背景变为白色......并且该项目上方有高程,仅此项目!
当我从drawable-v21 / XML文件中删除<item android:drawable="@color/mycolor"/>
行(或将mycolor
设置为白色)时,会显示高程。波纹颜色没有影响,可能是白色或任何其他(工作)。
问题是:如何使用自定义颜色设置BottomNavigationView
样式以保持背景高度正常工作?
答案 0 :(得分:0)
我使用app:theme="@style/AppTheme.PopupOverlay"
来使用我的应用颜色。它们会自动设置为它们。
例如,如果您的主要颜色为绿色,则图标和文本将显示为绿色。
你需要保持白色背景和海拔......