Material Design 中的 NavigationView 应用分享

阅读时长 16 分钟读完

什么是 NavigationView

NavigationView 是 Google Material Design 中的一个设计组件,用于实现侧边栏菜单和导航功能。它主要由 DrawerLayout、NavigationView 和 HeaderLayout 组成。通过 NavigationView,我们可以方便地管理应用程序的导航和主要 UI 组件,并使整个应用程序看起来更加现代化、可用性更高。

如何使用 NavigationView

使用 NavigationView 实现侧边栏导航功能,需要我们分别实现 DrawerLayout、NavigationView 和 HeaderLayout。如下所示为一个基本的 NavigationView 实现:

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

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

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

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

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

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

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

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

在 DrawerLayout 中分别添加主体内容和 NavigationView 控件。NavigationView 的 app:headerLayout 属性用于设置侧边栏顶部的 HeaderLayout,app:menu 属性用于设置侧边栏菜单的布局。

我们需要自定义 HeaderLayout 和菜单布局,如下所示为一个简单的例子:

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

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

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

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

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

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

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

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

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

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

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

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

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

    --------

-------

在 onCreate() 方法中,我们可以通过 findViewById() 方法获取到 NavigationView,然后对其进行相关设置:

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

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

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

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

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

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

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

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

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

-

NavigationView 的样式和主题

NavigationView 可以通过设置样式和主题来改变其外观。例如,我们可以设置菜单项的字体大小和颜色,甚至可以改变菜单项的布局方式。

首先,我们需要在 res/values/styles.xml 文件中定义 NavigationView 的样式,如下所示:

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

-----------

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

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

然后,在布局文件中,可以通过 app:theme 属性来应用这个样式:

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

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

NavigationView 的进阶用法

除了基本的侧边栏菜单功能外,NavigationView 还具有一些进阶用法。例如,我们可以在菜单项中添加图标、副标题、数字标记等。下面就是一些示例代码:

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

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

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

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

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

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

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

    --------

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

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

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

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

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

在代码中,我们可以通过 findItem() 方法找到指定的菜单项,然后动态设置其属性:

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

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

总结

NavigationView 是 Material Design 中的一个重要组件,其可以用于实现侧边栏菜单和导航功能。不仅如此,NavigationView 还提供了丰富的进阶用法,例如设置样式和主题、添加图标、副标题、数字标记等。通过学习 NavigationView,我们可以更快地开发移动应用,提高用户体验和用户满意度。

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

纠错
反馈