突出显示当前所选导航菜单项的背景

时间:2017-12-22 18:04:50

标签: android xml navigation

这是Adobe Illustrator中我的应用设计的剪辑/屏幕截图:https://imgur.com/a/7tXii 根据您当前所在的菜单,相应的部分应如下所示突出显示(在这种情况下为浅蓝色)。

我知道您可以通过在/styles.xml下创建的自定义ThemeOverlay更改ITEM / ICON颜色,并添加app:theme =“@ style / preceding_tioned_theme_overlay”,如下所示:

    <style name="ThemeOverlay.AppCompat.navTheme">

    <!-- Color of text and icon when SELECTED -->
    <item name="colorPrimary">@color/color_of_your_choice</item> 

    <!-- Background color when SELECTED -->
    <item name="colorControlHighlight">@color/color_of_your_choice</item> 

</style>

但是,所有这一切都是在选择时更改图标颜色,而不是突出显示图标下方的部分。 主要问题可能是导航背景是整个屏幕上的水平条,但我只想根据所选项目更改其中33%的颜色。这可能需要一个脏的解决方法(?)。

1 个答案:

答案 0 :(得分:1)

不需要那么多脏的解决方法。只需在初始化BottomNavigationView实例后添加此内容:

navigation.setItemBackgroundResource(R.drawable.menubackground);

并将其放入/drawable/menubackground.xml

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

看起来像这样:

enter image description here

相关问题