为什么Toolbar会替换ActionBar?

san*_*one 1 android android-actionbar android-toolbar

从Android L开始,我们有一个Toolbar而不是它ActionBar虽然它的用法看起来是一样的.他们甚至恢复了Toolbar通过支持库的兼容性.

他们ActionBar用一个Toolbar?取代的原因是什么?

Jam*_*ken 6

添加工具栏是因为UI已经超越了ActionBar的限制.主要区别在于工具栏可以与Activity的不透明窗口装饰分离,并放置在您的自定义布局中.从那里,您可以使用工具栏自由地做一些有趣的事情.一个常见的例子是基于滚动增加或缩小高度.

工具栏文档.

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

工具栏支持比ActionBar更集中的功能集.从开始到结束,工具栏可能包含以下可选元素的组合:

  • 导航按钮.这可能是应用程序选择的向上箭头,导航菜单切换,关闭,折叠,完成或其他字形.此按钮应始终用于访问工具栏容器内的其他导航目标及其指示的内容,或以其他方式保留工具栏指示的当前上下文.如果设置,导航按钮在工具栏的最小高度内垂直对齐.
  • 品牌徽标图像.这可以延伸到杆的高度并且可以任意宽.
  • 标题和副标题.标题应该是工具栏在导航层次结构中的当前位置以及其中包含的内容的路标.字幕(如果存在)应指示有关当前内容的任何扩展信息.如果应用使用徽标图片,则应强烈考虑省略标题和副标题.
  • 一个或多个自定义视图.应用程序可能会向工具栏添加任意子视图.它们将出现在布局中的这个位置.如果子视图的Toolbar.LayoutParams指示CENTER_HORIZONTAL的重力值,则在测量完所有其他元素后,视图将尝试以工具栏中剩余的可用空间为中心.
  • 动作菜单.操作菜单将固定到工具栏的末尾,提供一些频繁,重要或典型的操作以及可选的溢出菜单以执行其他操作.如果设置,操作按钮在工具栏的最小高度内垂直对齐.

在现代Android UI中,开发人员应该更多地依赖于工具栏的视觉上不同的颜色方案而不是应用程序图标.API 21设备和更新设备不鼓励使用应用程序图标和标题作为标准布局.