📌  相关文章
📜  Android中AppBar、ActionBar、Toolbar的区别(1)

📅  最后修改于: 2023-12-03 14:59:17.011000             🧑  作者: Mango

Android中AppBar、ActionBar、Toolbar的区别

在 Android 应用开发中,经常会使用到三个类:AppBar、ActionBar 和 Toolbar。虽然这三个类都用于显示标题和操作菜单,但每个类的用法和行为略有不同。本文将简要介绍这三个类的区别。

AppBar

AppBar 是 Android 设计库中的一个布局组件,它由两个主要部分组成:AppBarLayout 和 Toolbar。AppBarLayout 通常用于包含 Toolbar 组件和其他和该组件相关的视图。Toolbar 是 AppBar 中用于显示标题和操作菜单的核心组件。

AppBar 可以很方便地实现诸如折叠式标题、可伸缩的工具栏等复杂界面效果。AppBar 还可以在应用程序的不同视图之间自动切换,例如在列表视图中显示选项菜单,在详情视图中显示复杂操作按钮。

示例代码:

<com.google.android.material.appbar.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <com.google.android.material.appbar.MaterialToolbar
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        app:title="My Title"
        app:menu="@menu/my_menu" />

</com.google.android.material.appbar.AppBarLayout>
ActionBar

ActionBar 是 Android 操作栏的经典实现。它位于 Activity 窗口的顶部,并提供应用程序的标题和一套操作按钮。ActionBar 应该被谨慎使用,因为它已经被标记为过时的 API。在许多情况下,AppBar 可以取代 ActionBar 的作用。

示例代码:

ActionBar actionBar = getSupportActionBar();
actionBar.setTitle("My Title");
actionBar.setSubtitle("My Subtitle");
Toolbar

Toolbar 是一个可定制化的、可扩展的 View 组件,它不包含任何预定义的用户界面元素。它不像 ActionBar,只能放置在 Activity 的顶部。Toolbar 可以放置在任何你想放置的位置,甚至是在其他布局组件中嵌套使用。Toolbar 可以像其他任何 View 组件一样被定制和扩展。

示例代码:

<Toolbar
    android:id="@+id/my_toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    app:title="My Title"
    app:subtitle="My Subtitle"
    app:menu="@menu/my_menu" />

总结

三个类都是用于显示标题和操作菜单,但区别在于,AppBar 是 Android 设计库中的一个布局组件,可以实现诸如折叠式标题、可伸缩的工具栏等复杂界面效果;ActionBar 是 Android 操作栏的经典实现,已被标记为过时的 API;Toolbar 是一个可定制化的、可扩展的 View 组件,可以放置在任何你想放置的位置。