toolbar的高度問題

學習toolbar,發(fā)現(xiàn)toolbar的默認高度有點高,本來以為是個很快就能解決的問題,結果看遍網(wǎng)上各種文章,各種嘗試都不成功,于是自己好好研究了下。在此分享下,希望大家都有收獲。

通過查看android的toolbar style可以得知,toolbar的最小高度是由android:minHeight屬性決定的,默認的android:minHeight為

<item name="android:minHeight">?attr/actionBarSize</item>

actionBarSize定義為

<item name="actionBarSize">@dimen/abc_action_bar_default_height_material</item>

@dimen/abc_action_bar_default_height_material這個值在不同的value中定義不同

<dimen name="abc_action_bar_default_height_material">56dp</dimen>

values-land.xml

<dimen name="abc_action_bar_default_height_material">48dp</dimen>

...

問題在于當我在toolbar中設置了minHeight的屬性后,發(fā)現(xiàn)并沒有生效,無論是設置style還是直接設置屬性都無效。
經(jīng)過研究發(fā)現(xiàn),當我們在activity中把toolbar設為actionbar的時候調用了

  Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
  setSupportActionBar(toolbar);

此時的toolbar被設置為了actionbar,同時也就應該默認應用了actionbar的style,于是實驗,寫了一個toolbar的style繼承actionbar的style

<style name="ToolbarStyle" parent="Base.Widget.AppCompat.ActionBar">
    <item name="android:minHeight">@dimen/toolbar_minHeight</item>
</style>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    style="@style/ToolbarStyle"
    />

至此,toolbar的高度已經(jīng)可以控制。同時本人有點強迫癥,覺得好好的toolbar為啥要變成actionbar并繼承actionbar的style才行,于是我把代碼中的設置toolbar為actionbar那句注釋了,并把toolbar的style改為繼承默認的toolbar style,結果表明是有效的。

      Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
//    setSupportActionBar(toolbar);
<style name="ToolbarStyle" parent="Base.Widget.AppCompat.Toolbar">
    <item name="android:textAppearance">@style/ToolbarText</item>
    <item name="android:minHeight">@dimen/toolbar_minHeight</item>
</style>

到目前為止,基本搞清了Toolbar的默認高度設置問題。
但是新的問題又出現(xiàn)了,當我把toolbar的layout_Height設為wrap_content,且minHeight的值比較小的時候,發(fā)現(xiàn)toolbar的title與頂部有空隙,向下偏移了一個位置,然后我在toolbar中設置了各種padding=0,margin=0,android:titleMargin=0,但依然無效,最后都以為是字體的偏移引起的。

修改前,頂部有空隙.png

后來在查看toolbar的默認style時,發(fā)現(xiàn)了Toolbar設置的titleMargin并沒有帶android

<style name="Base.Widget.AppCompat.Toolbar" parent="android:Widget">
    <item name="titleTextAppearance">@style/TextAppearance.Widget.AppCompat.Toolbar.Title</item>
    <item name="subtitleTextAppearance">@style/TextAppearance.Widget.AppCompat.Toolbar.Subtitle</item>
    <item name="android:minHeight">?attr/actionBarSize</item>
    <item name="titleMargin">4dp</item>
    <item name="maxButtonHeight">@dimen/abc_action_bar_default_height_material</item>
    <item name="buttonGravity">top</item>
    <item name="collapseIcon">?attr/homeAsUpIndicator</item>
    <item name="collapseContentDescription">@string/abc_toolbar_collapse_description</item>
    <item name="contentInsetStart">16dp</item>
    <item name="contentInsetStartWithNavigation">@dimen/abc_action_bar_content_inset_with_nav</item>
    <item name="android:paddingLeft">@dimen/abc_action_bar_default_padding_start_material</item>
    <item name="android:paddingRight">@dimen/abc_action_bar_default_padding_end_material</item>
</style>
<style name="ToolbarStyle" parent="Base.Widget.AppCompat.Toolbar">
    <item name="titleTextAppearance">@style/ToolbarText</item>
    <item name="android:minHeight">@dimen/toolbar_minHeight</item>
    <item name="titleMargin">0dp</item>
</style>
修改后,問題解決.png

然后嘗試設置titleMargin=0,結果顯示正常了。這個問題也算花費了我較多的時間,目前為止,已經(jīng)完美解決。本人只嘗試了toolbar的style,相信actionbar的style也是類似。

總結:還是看看默認的style設置的屬性能給我們更多的啟發(fā)。toolbar的其他屬性也能通過類似的方式進行挖掘。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,577評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,486評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,600評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,944評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,108評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,652評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,385評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,616評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,798評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,334評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,570評論 2 379

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,752評論 25 708
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,494評論 0 17
  • (二)伊人歸來落白梨 前情回顧:他初遇她,后來向王母求得法術,卻舍棄了一些東西。 不知不覺,年歲更替,當年那個在水...
    潑茶客閱讀 414評論 2 4
  • 自開車變成日常之后,我那沒見過世面的心靈就陸續(xù)受到了沖擊。高架上不打燈的變道,地面上沖天刺耳的喇叭,還有閃瞎你雙眼...
    小西瓜彭彭閱讀 196評論 0 0