Material Design 中的 Toolbar 使用指南

阅读时长 11 分钟读完

Toolbar 作为 Material Design 中的重要组件之一,可用于显示应用的标题、菜单、操作按钮等,为用户提供更好的用户体验。本文将介绍如何使用 Toolbar,并提供示例代码及相关学习指导。

1. Toolbar 的基本使用

Toolbar 的基本使用方式很简单,只需在布局文件中添加一个 Toolbar 控件即可:

为了实现 Toolbar 的常见功能,我们往往需要先在 Activity 中获取该控件,并设置相关属性:

其中,setSupportActionBar(toolbar) 方法是为了将该 Toolbar 对象绑定到 Activity/Fragment 中,并将该 Toolbar 作为应用的 ActionBar 显示出来。此时,我们还需要在布局文件中添加一个空白的 FrameLayout 作为内容视图容器:

如果我们需要在 Toolbar 中添加操作按钮,只需要在布局文件中添加 app:menu 属性即可:

此时,在 menu_toolbar.xml 文件中可以定义操作按钮的样式和动作:

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

2. Toolbar 的高级使用

除了基本使用方式,Toolbar 还提供了许多高级功能,如自定义视图、折叠模式、搜索栏、滑动隐藏等。下面就简要介绍一下这些用法。

2.1 自定义视图

除了基本的标题和操作按钮,Toolbar 还可以显示自定义视图,如搜索框、用户头像等。实现方式也很简单,只需要在布局文件中添加一个自定义的 View,再调用 setSupportActionBar(toolbar) 方法即可:

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

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

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

2.2 折叠模式

Toolbar 的折叠模式可以将 Toolbar 收起,仅显示一个标题栏。虽然是隐藏了操作按钮,但是整个界面显得更加简洁明了。

实现方式为,在布局文件中设置 app:layout_scrollFlags="scroll|enterAlways|snap" 属性,将 Toolbar 的滚动标志设置为 “scroll|enterAlways|snap”:

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

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

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

注意,CollapsingToolbarLayout 是需要和 Toolbar 一起使用的,而且该布局中必须包含一个可折叠的控件,如 ImageView 或 TextView。

2.3 搜索栏

Toolbar 还提供了搜索栏的功能,不仅美观实用,而且十分易于实现。具体方式是,将搜索框作为一个自定义视图,添加到 Toolbar 中。

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

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

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

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

注意,此时还需要在 Activity 中设置搜索框相关的监听器。例如,当用户输入内容时,我们往往需要改变搜索框的图标来显示搜索进度:

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

2.4 滑动隐藏

最后,我们还可以为 Toolbar 添加滑动隐藏的功能,从而为用户提供更大屏幕空间。实现方式是,在布局文件中添加 app:layout_scrollFlags="scroll|enterAlways|snap" 属性,将 Toolbar 的滚动标志设置为 “scroll|enterAlways|snap”:

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

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

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

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

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

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

此时,当用户向下滑动时,Toolbar 会从屏幕上方消失,向上滑动时则会重新出现。不过需要注意的是,Toolbar 的滑动隐藏仅适用于 CoordinatorLayout 中的子视图。

3. 总结

以上就是本文介绍的关于 Material Design 中 Toolbar 的使用指南。除了基本的标题和操作按钮外,Toolbar 还可以实现自定义视图、折叠模式、搜索栏和滑动隐藏等高级功能,优化用户体验。读者可以通过本文提供的示例代码及相关学习指导,快速掌握这些功能,并在实际开发中灵活运用。

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

纠错
反馈

程序员教程

精选优质教程,助你快速提升技术实力

程序员面试题库

海量优质面试题,助你轻松应对技术面试