【问题标题】:Highlight the background of the navigation menu item currently selected突出显示当前选择的导航菜单项的背景
【发布时间】:2017-12-22 18:04:49
【问题描述】:

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

我知道您可以通过在 /styles.xml 下创建的自定义 ThemeOverlay 并添加 app:theme="@style/afore_提到的主题_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>

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

【问题讨论】:

    标签: android xml navigation


    【解决方案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>
    

    看起来像这样:

    【讨论】:

    • 非常感谢,这正是我想要的!我可以应用相同的方法插入渐变可绘制对象,对吧?
    • 是的,我相信任何可绘制对象。
    猜你喜欢
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 2012-02-13
    相关资源
    最近更新 更多