譯--ToolBar(一)

建立 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:

@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就有了一個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(二)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章