Android Material Design 工具类之 NavigationView 的使用

阅读时长 12 分钟读完

随着 Android 的不断发展,越来越多的人开始注重应用的交互设计。Google 内部的 Material Design 规范不仅有助于提高应用的美观程度,而且还可以提高用户体验。Navigation Drawer 是 Material Design 的一部分,是最常见的用户交互设计。 NavigationView 是实现 Navigation Drawer 的一种方式。本文将介绍 NavigationView 的使用方法。

NavigationView 基础

NavigationView 可以用来实现左右边栏菜单的展示效果。当 用户点击侧栏某个菜单选项时,可以切换到不同的 Fragment 或 Activity 中。

NavigationView 需要放置在 DrawerLayout 中。下面是一个简单的示例代码:

-- -------------------- ---- -------
--------------------------------------- --
    ------------- --
        -- ----
    ---------------
 
    --------------------------------------------- --
        -- ----
    -----------------------------------------------
-----------------------------------------
展开代码

需要注意的是,NavigationView 必须包含在 DrawerLayout 中,同时要使用 Support Library 28.0.0 及以上版本。

NavigationView 通常配置了以下信息或特点:

  1. 向用户展示许多层次的页面结构。

  2. 每个项的标题和图标都代表一个可访问的目标。

  3. 使用户可以快速浏览和访问应用中的内容。

  4. 用颜色、形状、图标和文本来增强内容和层次。

  5. 支持主题切换。

下面的代码片段显示如何配置 NavigationView 元素:

-- -------------------- ---- -------
---------------------------------------------
    ---------------------------------
    -----------------------------------
    ------------------------------------
    ------------------------------
    -----------------------------------------
    -------------------------------------------
    --------------------------------------------
    -------------------------------------
    -------------------------
    -
-----------------------------------------------
展开代码

其中:

  • id 是这个 NavigationView 对象的唯一标识符。
  • layout_widthlayout_height 视需求而定。
  • layout_gravity 设置此元素的 Gravity 属性。此处的属性值是 start,使导航视图左对齐。
  • background 是导航视图的背景色。
  • itemIconTintitemTextColor 设置菜单项的图标和文本的颜色状态列表。
  • headerLayout 属性设置了 NavigationView 的头项布局。
  • menu 设置了导航视图中的菜单项,需加载在 res/menu 路径下的 XML 文件。

如何呈现 NavigationView

这里指导如何呈现NavigationView。首先,在布局文件中定义NavigationView 元素。

-- -------------------- ---- -------
 ----- ------------- ------------------
 ------------- ----------------------------------------------------------
     -------------------------------
     -----------------------------------
     ------------------------------------
     -------------------------------
 
     ---------------------------------------
         -------------------------------
         -----------------------------------
         ------------------------------------ -
 
         ------------
             -------------------------------
             -----------------------------------
             ------------------------------------ --
 
         ---------
             -----------------------------
             ----------------------------
             ------------------------------------
             ------------------------------
             ---------------------------------
             --------------------------------------------
             ---------------------------
             ------------------------------
 
     -----------------------------------------
 ---------------
展开代码

其次,在 MainActivity 中初始化 DrawerLayout 及 NavigationView。

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

     ------- ------- --------
     ------- ------------ -------------
     ------- -------------- ---------------
     ------- -------- ------------
  
     ---------
     --------- ---- --------------- ------------------- -
         -----------------------------------
         ---------------------------------------
         
         ------- - --------- ---------------------------
         -----------------------------
         ------------------------------------------------------
 
         ------------ - -------------- ---------------------------------
         -------------- - ---------------- -----------------------------------
 
         -----------------------------------
     -
 
     ------- ---- --------------------------------- --------------- -
         -------------------------------------------------
                --- ------------------------------------------------- -
                    ---------
                    ------ ------- --------------------------------- --------- -
                        ---------------------------
                        ------ -----
                    -
                ---
     -
 
     ------ ---- ------------------------- --------- -
         ---------------------------- -
             ---- -------------------------
                 ----------------------------------------------
                         ---------------------------- --- -----------------
                         ----------
                 ------
             ---- --------------------------
                 ----------------------------------------------
                         ---------------------------- --- ------------------
                         ----------
                 ------
             ---- -------------------
                 ---
         -
 
         --------------------------
         ------------------------------
         ----------------------------
     -
 
     ---------
     ------ ------- ------------------------------ ----- -
         ------ ------------------ -
             ---- ------------------
                 --------------------------------------------- --------------------------------
                 ------ -----
         -
         ------ ----------------------------------
     -
 -
展开代码

其中,

  • 通过调用 setSupportActionBar() 方法将 Toolbar 设置到当前 Activity 中。
  • 调用 findViewById() 方法找到了 DrawerLayout 和 NavigationView。
  • 调用setNavigationItemSelectedListener为 NavigationView 绑定了监听器。
  • 通过replace() 方法将我们想要的 Fragment 替换为 content_frame 中的内容。
  • 通过 setTitle() 将主页面的标题设置为选定的项目的标题。

最后,创建menu.xml文件

-- -------------------- ---- -------
----- -----------------------------------------------------------
 
     ------ -----------------------------------
         -----
             -------------------------------------
             -------------------------------------------------
             -------------------------------------------- --
         -----
             --------------------------------------
             ----------------------------------------------------
             --------------------------------------------- --
     --------
 
     ----- ----------------------------
         ------
             -----
                 ---------------------------
                 --------------------------------------------
                 --------------------- --
             -----
                 --------------------------
                 -------------------------------------------
                 -------------------- --
         -------
     -------
 
 -------
展开代码

在上述代码中,group 标签和了两个可点击菜单项用来代替 mainpage activity 内容块之下的UI控件。

结论

在本文中,我们学习了如何使用 NavigationView 来呈现标准 Navigation Drawer UI 设计。重要的是,NavigationView 必须包含在 DrawerLayout 中,它允许我们访问其他片段或活动。NavigationView 可以包含一个标题栏,一个头部信息区域和一个主体区域,用于显示菜单项。

以上就是 NavigationView 的使用方法。NavigationView 可以实现应用程序的高效导航,具有清晰的 UI 界面和易于使用的布局结构。希望这篇文章对大家有所帮助。

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

纠错
反馈

纠错反馈