1

我想BottomNavigationViewelevation(当前设计库版本 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使用自定义颜色设置背景以保持高程工作?

4

1 回答 1

0

我用来app:theme="@style/AppTheme.PopupOverlay"使用我的应用程序颜色。它们会自动设置为它们。例如,如果您的原色是绿色,则图标和文本将以绿色显示。你需要保持白色背景和海拔......

于 2017-06-26T16:54:15.703 回答