译--ToolBar(一)

来源:互联网 发布:linux定时器关闭 编辑:程序博客网 时间:2024/06/06 01:26

建立 App Bar

在大多数app布局中,action bar在一边展示了activity的title,并且在另一边展示了一个(overflow)
溢出菜单。即使在非常简单的app结构中,app bar(action 是app
bar的具体表现)仍然对用户提供了有用的信息,并且给app带来了一致的感觉和体验。

自android 3.0(API 11)开始,所有的activity都是用一个带有action bar的默认主题(Theme),然而,随着不同的android版本的发布,action
bar也随之改变,结果导致了action
bar在不同版本的android上有不同的表现,于此不同的是,google把大多数最近的特性加入到了Toolbar的support
library中,并且可以在任何设备中使用support library。

就因为以上原因,你应该使用support library中的Toolbar来实现你的app bar,使用toolbar可以保证你的app bar
在绝大多数类中有一致的体验,比如,Toolbar部件提供了material design,可以运行在android 2.1 (API 7)及以上版本上,但是action
bar不支持material design,除非android版本大于等于5.0.

在Activity上加一个ToolBar

一. 在工程中添加v7 appcompat 支持包(support library)。

二. 让activity继承AppCompatActivity:

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

三. 在manifest文件中,在元素中设置任意一个appcompat中带有NoActionBar的主题(就是设置一个不带有action
bar的主题,因为我们要用toolbar啊)。

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

四. 在activity的布局文件中添加toolbar,例如下面的代码,给toolbar添加一个浮动效果(也就是在Z轴上有一定的dp,material design):

<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 建议为app bar 的elevation设置为4dp。

五. 在activity的onCreate()方法中调用setSupportActionBar()方法,来设置toolbar作为app bar:

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

**现在,app就有了一个toolbar,默认情况下toolbar只包含app的名字(或者还有一个overflow menu),自己可以在toolbar或者overflow
menu中添加更多的action**

使用App Bar 的工具方法

一旦在activity中设置了toolbar,你就可以使用各种各样的由v7 appcompat support library 提供的各种各样的方法。

使用方法时,首先调用getSupportActionBar()
方法,得到一个ActionBar对象的索引,一旦得到了索引,就可以调用任何的ActionBar方法了,例如,隐藏app bar时,调用 ActionBar.hide().

原文地址:Tool Bar

如有错误,敬请指出,不胜感激!

译–ToolBar(二)

2 0
原创粉丝点击