您的位置:首页 > 移动开发 > Android开发

Android初步认识ToolBar

2016-09-23 18:39 686 查看

前言:

ToolBar是ActionBar一种延伸的产物。尽管ActionBar是作为Activity不透明窗体装饰的一部分,但是ToolBar却可以放置在一个视图层的任意层中。应用也可以使用
setActionBar()
 方法指定ToolBar为ActionBar。

ToolBar比ActionBar有着更多值得人们关注的特性。从头到尾,一个ToolBar可能包含以下可选元素的组合。

导航按钮:它也许是一个向上的箭头图标,用来导航菜单的切换,关闭或者象征app其他的操作。若设置了ToolBar的最小高度,

那么导航按钮在垂直方向上会与ToolBar的最小高度一致。

图标:它有可能会延伸至ToolBar的高度,但其宽度是任意的。

标题和子标题:标题应该是充当当前ToolBar的一个指示牌。而子标题则是用来描述一些额外的信息。如果一个应用使用了图标,

那么应该将标题和子标题都予以省略掉。

一个或多个自定义控件:应用可能会添加一个子控件到ToolBar中,那么子控件的添加就会显示在这个位置上。如果一个子控件将

Toolbar.LayoutParams
Gravity
 设置为
CENTER_HORIZONTAL
 ,那么,子控件就会尽量在所有元素被测量之后所确定的

空间中予以居中。

活动菜单:活动菜单是位于ToolBar的最末端。如果设置了ToolBar的最小高度的话,那么,活动菜单总是与ToolBar的最小高度对齐。

例如ToolBar基本使用的示例源码的效果图所示:



熟悉ToolBar的基本使用:

设置ToolBar为Activity的app bar

1>

添加v7 appcompat 支持库到你的工程,正如 Support
Library Setup所描述的一样

2>

确保Activity是继承于
AppCompatActivity :




public class MyActivity extends AppCompatActivity {
  // ...
}


须知:对于需要将ToolBar作为app bar的应用而言,其每一个activity都需要这么做

3>

在应用的manifest中,设置
<application>
 节点为一个带有
NoActionBar
 的appcompat的主题。这样就能阻止
ActionBar去作为 app bar 

<application
    android:theme="@style/Theme.AppCompat.Light.NoActionBar"
    />


4>

添加一个ToolBar到activity的布局中,例如如下所示:

<android.support.v7.widget.Toolbar
   android:id="@+id/my_toolbar"
   android:layout_width="match_parent"
   android:layout_height="?attr/actionBarSize"
   android:background="?attr/colorPrimary"
   android:elevation="4dp"
   android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
   app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

 Material
Design specification 建议app bar 有一个 4dp 的高度值 ;

由于你使用ToolBar作为 app bar,所以你应该将 ToolBar 放置在 activity 布局 的顶部

5>

在activity的方法中,调用方法并传入activity的ToolBar,这个方法就会将ToolBar设置为activity的app bar 了。例如:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
    Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
    setSupportActionBar(myToolbar);
    }


你的app现在有一个基本的action bar了。这个action bar现在仅仅只包含一个当前app的名字和一个悬浮菜单。

这个菜单目前只包含一个Setting条目。你可以添加更多的活动到action bar和浮动菜单中,如 Adding
and Handling Actions所描述的。

须知:
ToolBar可以通过 setSupportActionBar(ToolBar)方法与app bar联系起来去使用,但也可以不调用 setSupportActionBar(ToolBar)方法,
进而让ToolBar去作为一个独立的普通控件来使用,也就是我们不一定非得要让ToolBar去作为ActionBar来进行使用。

使用app bar中的实用方法:

一旦你将ToolBar设置为了activity的action bar,那么,你就可以使用v7
appcompat 支持库的action bar类的各种实用方法。

这种方式可以让你做很多有用的事,比如:隐藏和显示action bar。

为了能够使用
ActionBar
 的实用方法,你可以通过调用Activity的
getSupportActionBar()
 方法去得到ActionBar这个对象的引用。

一旦有了ActionBar这个引用,你就可以调用ActionBar的各种方法去调整app
bar。例如通过调用
ActionBar.hide()
去隐藏app bar。

总结:

初步认识Toolbar的示例源码

参考:

设置App Bar

ToolBar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: