【Android】Toolbar

#Toolbarandroid

##簡述git

Toolbar 在v7.21+包中,是一個用來替代ActionBar的組件,能夠說是ActionBar的升級版本。Toolbar與ActionBar比較有幾個特色:app

  1. ActionBar屬於Window的裝飾組件,一個activity中只能有一個ActionBar,可是Toolbar屬於View級別,能夠有任意多個
  2. ActionBar定製困難,Toolbar能夠看做一個ViewGroup,能夠自由搭配

Toolbar的幾個組成與ActionBar差很少,順序是:google

  1. 導航按鈕
  2. logo
  3. 標題
  4. 自定義組件
  5. action menu(相似菜單)

##使用.net

###替換ActionBarcode

若是使用的是兼容包,那麼依舊必須繼承ActionBarActivity,惟一的要點:主題中須要去掉ActionBar。繼承

<style name="V7.Toolbar" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="windowActionBar">false</item>
</style>

或者

<style name="V7.Toolbar" parent="Theme.AppCompat.Light.NoActionBar">
</style>

代碼中用Toolbar替換掉ActionBar便可ip

setContentView(R.layout.v7_activity_toolbar);
    Toolbar toolbar = (Toolbar) findViewById(R.id.v7_toolbar_1);
    if (toolbar != null) {
        setSupportActionBar(toolbar);
    }

就是這麼簡單get

###實現tabit

能夠注意點到,ActionBar中的setNavigationMode方法已經被標記爲deprecated了,因此想必也是不推薦了。 Toolbar並無提供現成的實現,雖然帶來了不便,可是賦予了更大的自由。 只須要在Toolbar的自定義組件部分加入tab組件就能夠了,tab組件有不少,google也提供了一個實現SlidingTabLayout。

<android.support.v7.widget.Toolbar

    android:id="@+id/v7_toolbar_2"
    android:layout_width="match_parent"
    android:layout_height="60dp">

    <dev.xesam.android.study.lollipop.v7.toolbar.SlidingTabLayout
        android:id="@+id/v7_sliding_tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</android.support.v7.widget.Toolbar>

###實現nav list

同tab,將SlidingTabLayout替換爲Spinner就行(老系統可能須要尋找其餘組件輔助實現預期效果)

<android.support.v7.widget.Toolbar
    android:id="@+id/v7_toolbar_1"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    app:theme="@style/V7.ToolbarTheme">

    <Spinner
        android:id="@+id/v7_toolbar_spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</android.support.v7.widget.Toolbar>

##demo demo(dev.xesam.android.study.lollipop.v7.toolbar.ToolbarActivity)

Android分享 Q羣:315658668

相關文章
相關標籤/搜索