Sil*_*ght 56 android android-actionbar android-toolbar
我一直在使用ToolBar它,因为它被添加到Support v7库中.我觉得我用得很好.但有一点我无法理解.为什么Google会创建这样的小部件?我的意思是我们可以ToolBar通过使用做任何事情ActionBar.我们为什么要使用ToolBar?有什么优势ToolBar了ActionBar如果有的话?是否有必要更换ActionBar的ToolBar?
任何提示都表示赞赏.并提前感谢.
PS:我发现ToolBar是一个蜕变ViewGroup.那么,我们怎么能ToolBar像Layout?有人可以发布一些代码吗?
Sha*_*ake 33
是的,您应该用新工具栏替换ActionBar.
原因
它看起来很现代,并且遵循新的材料设计.
与操作栏不同,工具栏不是窗口装饰的一部分.您可以像定义任何其他窗口小部件一样定义它并放置它...因此,您可以自由地将它放置在父布局中的任何位置.
您可以自由地将任何小部件放在工具栏中.
您可以定义多个工具栏.
编辑
我的意思是你可以在工具栏中放置其他小部件(视图).
为工具栏创建单独的布局文件(适用于可重用性).在我的情况下,文件名是main_toolbar.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:App="http://schemas.android.com/apk/res-auto"
    xmlns:segmentedgroup="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    App:theme="@style/ToolbarColoredBackArrow"
    android:layout_height="56dp"
    android:background="@color/primary_color" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="@dimen/drawer_fntsize"
        android:text="Title"
        android:id="@+id/lbl_title"
        android:textColor="@color/title_text_color"
        android:layout_gravity="center" />
 </android.support.v7.widget.Toolbar>
然后在此主布局中包含此工具栏
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <include
        android:id="@+id/toolbar"
        layout="@layout/main_toolbar" />
    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/toolbar" />
</RelativeLayout>
正如您在此示例中所看到的,我将TextView放在工具栏中
Com*_*are 22
为什么Android会创建这样的小部件?
想象一下,如果你愿意的话,Android平板电脑.
这款平板电脑正在运行应用 该应用程序在屏幕的右下角有一个富文本编辑器,可以输入一些注释,并用粗体,斜体等格式化它们.
在桌面或Web应用程序中,除了键盘快捷键之外,这些格式化选项的典型方法是工具栏,就像您在Stack Overflow上的答案文本区域上方看到的那样.
在此之前Toolbar,Android开发人员必须滚动自己的工具栏,或将格式化操作放在操作栏中.虽然后一种方法很容易,但它会给上述虚构应用程序的用户带来压力,因为用户必须将她的视觉焦点从编辑器(屏幕底部)切换到动作栏(屏幕顶部).
我们为什么要使用ToolBar?
你不必使用Toolbar.作为我的书的一部分,我有大约300个样本应用程序,目前,它们正好使用了零.我必须在某些时候纠正这个问题,因为我还没有写过章节.ToolbarToolbar
是否有必要用ToolBar替换ActionBar?
没有.有办法做到这一点,但没有必要.
Lou*_*CAD 17
工具栏比标准ActionBar更灵活,您可以在工具栏中添加更多工具(因为它扩展了ViewGroup),并遵循材料设计指南.
例如,使用工具栏,您可以执行以下操作:

常规ActionBar不打算以这种方式扩展.
此外,您可以更好地操作工具栏内容,因为您可以将其包含在Activity布局xml文件中.就个人而言,我在顶部,工具栏和下方使用LinearLayout或RelativeLayout,填充剩余空间,一个FrameLayout,我的片段将被添加.
最后,您可以将工具栏放在布局文件中的任何位置.
更新:
谷歌发布了Android设计支持库.推荐的方式得到扩展Appbar是包装Toolbar带AppBarLayout,并添加额外的观点如TabLayout.要获得FAB在工具栏就像这个截图,你可以使用CoordinatorLayout包布局的内容,然后用在FAB锚属性.
标准toolbar用于应用程序内容.
A Toolbar是action bar在应用程序布局中使用的s 的概括.虽然action bar传统上是由不受控制Activity的不透明的一部分,但是可以将a放置在视图层次结构中的任意嵌套级别.一个应用程序可以选择指定一个作为用于使用该方法.window decorframeworkToolbarToolbaraction barActivitysetActionBar()
Toolbar支持更集中的功能集ActionBar.从头到尾,a toolbar可能包含以下可选元素的组合:
Up arrow导航菜单切换,关闭,折叠,完成或应用程序选择的其他字形.此按钮应始终用于访问Toolbar其所指示内容的容器内的其他导航目标,或以其他方式保留当前上下文所表示的
 Toolbar.Toolbar如果设置,导航按钮在最小高度内垂直对齐
 .Toolbar导航层次结构中当前位置及其中包含的内容的路标
 .的subtitle,如果存在应注明有关当前内容的任何扩展信息.如果应用程序使用logo
image它,则应强烈考虑省略a title和subtitle.Toolbar.它们将出现在布局中的这个位置.如果孩子观看了Toolbar.LayoutParams表示视图的Gravity
值CENTER_HORIZONTAL将尝试Toolbar在测量所有其他元素之后剩余的可用空间内居中.menu操作将针对产品的结尾
 Toolbar提供一些频繁,重要或典型的操作以及可选overflow menu的其他操作.如果设置,Action按钮在Toolbar最小高度内垂直对齐.在现代AndroidUI中,开发人员应该更多地依赖于工具栏的视觉上不同的颜色方案而不是应用程序图标.API 21设备和更新设备不鼓励使用应用程序图标和标题作为标准布局.
我们为什么要使用
ToolBar?
工具栏用于旧支持库不提供的预设备和后端兼容性.请记住ActionbarSherlock,android自己在那里支持低级API设备上的actionbar.
有什么优势
ToolBar了ActionBar如果有的话?
您可以在工具栏的XML中轻松添加自定义视图,例如相对布局视图,特别是自定义标题和带动画的图标.您可以在工具栏上进行更多控制,而不是旧的传统操作栏.
是否有必要更换
ActionBar的ToolBar?
如果您要在低于2.0的设备上支持操作栏,那么是,您需要操作栏的后端口兼容性.
| 归档时间: | 
 | 
| 查看次数: | 25709 次 | 
| 最近记录: |