appbar,toolbar,actionbar之间的确切区别是什么?什么时候专门使用它们?

时间:2017-06-13 08:46:26

标签: android android-actionbar android-toolbar android-appbarlayout

appbarToolbarActionbar之间的确切区别是什么?什么时候专门使用它们? 我试着找到它们,但它让我感到困惑,所以任何好友都可以向我解释它们之间的确切区别以及何时使用它们或者这是单个组件的同名吗?

3 个答案:

答案 0 :(得分:21)

  1. Toolbar 用于应用程序内容的标准toolbar
  2. Toolbar是在应用程序布局中使用的操作栏的概括。虽然动作栏传统上是由框架控制的Activity的不透明窗口装饰的一部分,但Toolbar可以放置在视图层次结构中的任何任意嵌套级别。应用程序可以选择使用Toolbar方法将setActionBar()指定为活动的操作栏。

    Toolbar支持比ActionBar更具针对性的功能集。从开始到结束,toolbar可能包含以下可选元素的组合:

    • 导航按钮。这可能是应用程序选择的向上箭头,导航菜单切换,关闭,折叠,完成或其他字形。此按钮应始终用于访问Toolbar容器内的其他导航目标及其指示的内容,或者保留Toolbar表示的当前上下文。导航按钮在工具栏的最小高度内垂直对齐(如果已设置)。

    • 品牌徽标图片。这可以延伸到条的高度,可以任意宽。

    • 标题和副标题。标题应该是工具栏在导航层次结构中的当前位置以及其中包含的内容的路标。字幕(如果存在)应指示有关当前内容的任何扩展信息。如果应用使用徽标图片,则应强烈考虑省略标题和副标题。

    • 一个或多个自定义视图。应用程序可能会向Toolbar添加任意子视图。它们将出现在布局中的这个位置。如果子视图的Toolbar.LayoutParams表示重力值为CENTER_HORIZONTAL,则在测量完所有其他元素后,视图将尝试以工具栏中剩余的可用空间为中心。 动作菜单。操作菜单将固定到Toolbar的末尾,提供一些频繁,重要或典型的操作以及可选的溢出菜单以执行其他操作。如果设置,操作按钮在工具栏的最小高度内垂直对齐。

    2。Actionbar 操作栏是每个屏幕顶部的一个专用区域,通常在整个应用程序中保持不变。

    它提供了几个关键功能:

    • 以可预测的方式使重要行动变得突出和可访问(例如新建或搜索)。

    • 支持应用内的一致导航和视图切换。

    • 通过为很少使用的操作提供操作溢出来减少混乱。

    • 提供专用空间,为您的应用提供身份。

    3。Appbar 应用栏(也称为操作栏)是应用活动中最重要的设计元素之一,因为它提供了用户熟悉的视觉结构和交互元素。使用应用栏可使您的应用与其他Android应用保持一致,从而使用户能够快速了解​​如何操作您的应用并获得出色的体验。应用栏的主要功能如下:

    • 专用空间,可为您的应用提供身份并指明用户在应用中的位置。

    • 以可预测的方式访问重要操作,例如搜索。

    • 支持导航和视图切换(带标签或下拉列表)。

    修改

    Action bar传统上是由框架控制的Activity不透明窗口装饰的一部分,但工具栏可以放置在视图层次结构中的任何嵌套级别。 toolbar提供的功能比ActionBar更多。 Toolbar可能包含从头到尾的元素组合。

    重要提示:

    Toolbar’sActionBar更灵活。我们可以轻松修改其颜色,大小和位置。我们还可以在其中添加标签,徽标,导航图标和其他视图。在Material Design中,Android更新了AppCompat支持库,以便我们可以在运行API Level 7及更高版本的设备中使用Toolbar’s ...

答案 1 :(得分:0)

我会说它们都是应用程序屏幕上端的相同容器视图... Toolbar是定义此框功能的Java类的名称,但在Android开发者网站上它们是我称之为App Bar。据我所知,它是一个增强的action bar,主要用于Material Design之前。

编辑#1:顺便说一句,我建议在创建应用程序时使用App Bar教程,因为这是推荐的方法。

答案 2 :(得分:0)

应用栏,它是组件名称from the design,而ToolbarActionBar类是关于实现的。所以问题是-工具栏和ActionBar有什么区别。

简而言之, ActionBar 是应用栏组件的初始实现,并且绑定到Activity。最初,它甚至不是Activity布局的一部分,而是系统渲染的装饰。

引入了工具栏上的

最新信息,与ActionBar不同,工具栏未绑定到Activity,您可以将其放置在布局内的任何位置,并且API更加清晰。为了简化工具栏的使用,setSupportActionBar()类中提供了一种AppCompatActivity方法,因此您可以通过ActionBar API使用工具栏,这会引起很多混乱。

那么,您应该在现代Android应用中使用哪个类?毫无疑问-工具栏或MDC library-MaterialToolbar的更高级版本。但是,如上所述,工具栏既可以用作独立解决方案,也可以使用setSupportActionBar()方法设置为“活动”动作栏。看看这个问题Is setSupportActionbar required anymore?answer可以找到更多详细信息。