Material Design 中实现 NavigationView 的使用详解

阅读时长 14 分钟读完

导语

NavigationView 是 Google Material Design 库中的一个组件,它提供了一种直观的方式来显示应用程序的导航结构,并为用户提供一个简单而强大的导航功能。本文将详细介绍如何在 Material Design 中实现NavigationView的使用。

NavigationView 源码

NavigationView的源码位于 com.google.android.material.navigation.NavigationView 包下,它继承自 androidx.drawerlayout.widget.DrawerLayout,实现了侧边栏导航功能。

NavigationView 采用了 RecyclerView 来展示菜单列表,因此如果学会了 RecyclerView,那么使用 NavigationView 也就毫无压力了。

NavigationView 的使用步骤

步骤1:添加依赖

build.gradle 文件中添加如下代码:

步骤2:定义布局

NavigationView 的布局由两部分组成:头部布局和菜单列表。头部布局通常用于显示登录信息、头像等,用来增加应用程序的用户体验。菜单列表用于显示应用程序的导航结构。

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

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

步骤3:设置菜单项

在 res/menu 目录下创建一个 menu_navigation.xml 文件,然后在该文件中添加菜单项。菜单项可以包括分组、子菜单、图标等。

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

步骤4:设置头部布局

创建一个 header_navigation.xml 文件用于定义头部布局,可以在该布局中添加头像、登录信息、个人设置等。

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

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

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

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

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

步骤5:监听菜单项点击事件

使用 onNavigationItemSelected() 方法来处理菜单项点击事件,例如打开其他 Activity 或者切换 Fragment。

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

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

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

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

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

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

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

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

示例代码

完整的示例代码如下所示。

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

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

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

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

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

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

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

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

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

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

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

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

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

总结

NavigationView 是 Google Material Design 库中的一个组件,它提供了一种直观的方式来显示应用程序的导航结构,并为用户提供一个简单而强大的导航功能。通过本文的介绍,相信大家已经掌握了 NavigationView 的使用方法。在实际开发中,NavigationView 常常用于移动应用程序的侧边栏导航功能,为用户提供直观的导航体验,同时也提升应用程序的用户体验。

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

纠错
反馈