Toolbar是作為5.0之后替代ActionBar的一個(gè)控件,平時(shí)也是會(huì)經(jīng)常的使用toolbar這個(gè)東西,但是也只是基本的使用,太深入詳細(xì)的功能也沒有去嘗試,最近抽時(shí)間做了一個(gè)詳細(xì)的學(xué)習(xí)整理,做一個(gè)記錄.
簡(jiǎn)單使用
如果像使用toolbar,首先要把a(bǔ)ctionbar干掉,像這樣
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
這個(gè)可以加在applaction標(biāo)簽,這樣全局沒有toolbar了,或者指定activity,這樣這個(gè)活動(dòng)就沒有toolbar了
然后,這就是一個(gè)最簡(jiǎn)單的toolbar

然后是運(yùn)行效果圖

圖中的標(biāo)題是通過xml設(shè)置,或者java設(shè)置的
app:title="這是一個(gè)toolbar"
toolbar.setTitle("一個(gè)丑陋的標(biāo)題");
其他屬性
上面就是這個(gè)東西的簡(jiǎn)單使用,但是效果沒法看的..再來使用一下他的其他屬性
backgroud="#f00" 這個(gè)不用說,設(shè)置背景顏色
app:titleTextColor="#fff"? 標(biāo)題顏色
app:subtitleTextColor="#55000000"? 小標(biāo)題顏色
subtitle="小標(biāo)題"? ?小標(biāo)題
logo? ? ? logo...
app:navigationIcon="@mipmap/back"? 導(dǎo)航圖標(biāo)
然后效果圖如下

menu的設(shè)置

我們先搞一個(gè)菜單出來,注意,菜單有一個(gè)屬性:
app:showAsAction? 然后他有這么幾個(gè)可選值
1、always:使菜單項(xiàng)一直顯示在ToolBar上,優(yōu)先級(jí)最高,加入你有10個(gè)menu,他會(huì)全都放到上面直到放不下為止,包括標(biāo)題等都會(huì)被擠掉(菜單鍵不會(huì)) ,而且如果你為這個(gè)menu設(shè)置了icon,他會(huì)有限限時(shí)icon,沒有icon的話會(huì)限時(shí)字
2、ifRoom:如果有足夠的空間,這個(gè)值會(huì)使菜單項(xiàng)顯示在ToolBar上。?
3、never:使菜單項(xiàng)永遠(yuǎn)都不出現(xiàn)在ToolBar上,在…的子項(xiàng)中顯示。?
4、withText:使菜單項(xiàng)和它的圖標(biāo),菜單文本一起顯示。
然后在activity中重寫

然后看效果


然后必須要設(shè)置點(diǎn)擊事件

這樣toolbar的菜單就基本可以使用了,但是還有一些細(xì)節(jié)設(shè)置
其他問題
1,三個(gè)丑陋的黑點(diǎn)怎們改變


2,我想像微信一樣修改子菜單的樣式怎們搞?

這個(gè)主題的是直接繼承ThemeOverlay.AppCompat.Dark,是支持包的一個(gè)主題

然后就變了效果

3,我想修改氣泡彈出的位置怎們搞?


4然后我們突然發(fā)現(xiàn)子菜單沒有圖標(biāo),神們鬼?


5,這種效果怎們做?

toolba是繼承自viewGroup的一個(gè)子類,請(qǐng)?jiān)谒锩娣乓粋€(gè)textview,然后居中即可.復(fù)雜的布局同理
這些差不多就是toolbar的一些使用了,這是一個(gè)定制性非常高的控件,早日替換actionbar