Android Material Design 中自定义 BottomNavigationView 实现选中图标变色的步骤

阅读时长 9 分钟读完

前言

BottomNavigationView 是在 Android 应用中广泛使用的导航栏元素,它是 Material Design 中推荐的一种标准设计。它能够让应用程序的导航更加清晰和易于理解,并且能够提高整体的用户体验。默认的 BottomNavigationView 中,选中的图标只有文本会变色,而图标本身却没有变化。本文将介绍如何自定义 BottomNavigationView 实现选中图标变色。

步骤

  1. 在 xml 文件中引入自定义 BottomNavigationView 布局,并引入相应的资源文件

上述代码中,“your.package.name”应该替换为自己的包名。

  1. 创建 drawable 文件夹,并在其中创建 bottom_nav_colors.xml 文件。这个文件将用于指定 BottomNavigationView 中每个项目的颜色。

在这里,我们创建了一个 selector 元素。它会随着项目的选中状态,选择显示其中的一个 item 子元素。我们可以在这里指定每个项目选中和未选中时的颜色。可以根据项目的需求修改任何特定的颜色。

  1. 创建一个 listener 并将其附加到 BottomNavigationView 中的每个项目上

在 onCreate 函数中,我们需要遍历 BottomNavigationView 中的每个项目,将统一的监听器附加到它们上面。下面是一段示例代码:

-- -------------------- ---- -------
    -------------------- -------------------- - ------------------------------
    -----------------------------------------------
    --- ---- - - -- - - -------------------------------------- ---- -
        ------------------------------------------------------------------------ ---------------------------------- -
            ---------
            ------ ------- ------------------------ ----- -
                -------------------------------------------
                ------ -----
            -
        ---
    -

在这里,我们首先将 selectedItemIconTint 属性设为 null,这样 BottomNavigationView 中的图标才能真正变色。然后,我们创建一个循环来遍历每个菜单项,然后附加一个监听器,该监听器在项目被选中后将更改其颜色。

  1. 实现 updateNavigationBarState() 方法

在这里,我们创建了一个 updateNavigationBarState() 方法,该方法遍历 BottomNavigationView 中的每个菜单项,并将选中的菜单项与未选中的菜单项区分开来。当选中一个菜单项时,我们将 menuItem.setChecked(true) 调用到该菜单项上,这将导致它的图标和文本较为明亮,而未选中的菜单项则会变暗。

  1. 最后,在 colors.xml 中指定颜色

以上就是本文介绍的自定义 BottomNavigationView 实现选中图标变色的全部步骤了。

总结

BottomNavigationView 是一个非常好的应用导航工具,使用自定义图标进行设计可以使它看起来更加生动、具有吸引力。希望本文中提供的步骤和示例代码对大家有所帮助。

完整代码:

-- -------------------- ---- -------
------ ----- ------------ ------- ----------------- -

    ------- -------------------- ----------------

    ---------
    --------- ---- --------------- ------------------- -
        -----------------------------------
        ---------------------------------------

        --------------- - ------------------------------
        ------------------------------------------

        --- ---- - - -- - - --------------------------------- ---- -
            ------------------------------------------------------------------- ---------------------------------- -
                ---------
                ------ ------- ------------------------ ----- -
                    -------------------------------------------
                    ------ -----
                -
            ---
        -
    -

    ------- ---- ---------------------------- ----------
        ---- ---- - --------------------------
        --- ---- - - -- - - ------------ ---- -
            -------- -------- - ----------------
            ------- ---------- - -------------------- -- ---------
            --------------------------------
        -
    -
-

Reference

本文参考以下资料:

  1. Custom Bottom Navigation View in Android with Example - Heartin Kanikathottu
  2. Android Developers: BottomNavigationView

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/647d543f968c7c53b0824e23

纠错
反馈