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

Gér*_*ard 5 xml navigation android

这是我在 Adob​​e Illustrator 中的应用程序设计的片段/屏幕截图: https: //i.stack.imgur.com/JIS81.jpg 根据您当前所在的菜单,相应的部分应突出显示,如下所示(浅蓝色在这种情况下)。

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

    <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>
Run Code Online (Sandbox Code Playgroud)

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

kal*_*lik 5

不需要太多肮脏的解决方法。只需在初始化BottomNavigationView实例后添加以下内容:

navigation.setItemBackgroundResource(R.drawable.menubackground);
Run Code Online (Sandbox Code Playgroud)

并将其放入其中/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>
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

在此输入图像描述