自定义Toolbar的一些小技巧
目錄
1、改變Toolbar高度(解決圖標不垂直居中)
2、改變toolbar彈窗菜單樣式
3、改變toolbar整體樣式
4、改變searchview樣式
1、改變Toolbar高度(解決圖標不垂直居中)
背景:實際使用中,toolbar默認高度有些大,會擠壓內容。想將toolbar高度改小,將layout_height從wrap_content改為固定值。
情況:toolbar的layout_height比默認高度小的時候,發現標題是居中的,但是兩側的圖標不垂直居中而偏下了
調查:網上有很多方法,基本都是無效的。甚至有人利用反射直接修改圖標的imageview的gravity,非常復雜且右側圖標無法實現。
解決方法:
自定義一個樣式如下:
<style?name="AppBar"?parent="Base.Widget.AppCompat.Toolbar"><item?name="android:minHeight">45dp</item><item?name="android:background">@color/appbar_bg</item> </style>其中minHeight修改為toolbar想要的高度,然后為toolbar設置這個樣式,同時layout_height也改為該值。這樣圖標就可以正常居中顯示了。如下:
<android.support.v7.widget.Toolbarxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:id="@+id/appbar"android:layout_height="45dp"android:layout_width="match_parent"style="@style/AppBar"> </android.support.v7.widget.Toolbar>2、改變toolbar彈窗菜單樣式
xml中為toolbar添加下面代碼 app:popupTheme="@style/ThemeOverlay.AppCompat.Dark"兩種主要樣式Dark是黑底白字,Light是白底黑字
注意要添加
xmlns:app="http://schemas.android.com/apk/res-auto"這樣只要替換popupTheme的值就可以改變彈窗菜單樣式。
而且也可以自定義樣式。
3、改變toolbar整體樣式
自定義一個樣式如下: <style?name="AppBarTheme"?parent="ThemeOverlay.AppCompat.Dark.ActionBar"><item?name="android:textColorPrimary">@color/white</item><item?name="colorAccent">@color/white</item> </style>兩種主要樣式Dark是灰色字體白色圖標,Light是黑色字體黑色圖標
其中textColorPrimary改變字體顏色,包括toolbar標題顏色等;colorAccent改變searchview的光標顏色。
然后在xml中為toolbar添加這個樣式
app:theme="@style/AppBarTheme"注意要添加
xmlns:app="http://schemas.android.com/apk/res-auto"這樣只要替換popupTheme的值就可以改變彈窗菜單樣式。
而且也可以自定義樣式。
4、改變searchview樣式
自定義一個searchview樣式如下: <style?name="SearchView"?parent="Widget.AppCompat.SearchView"><item?name="submitBackground">@color/a</item><item?name="queryBackground">@color/b</item> </style>在這個樣式中可以修改searchview的各個屬性,所有屬性如下:
<item?name="layout">@layout/abc_search_view</item> <item?name="queryBackground">@drawable/abc_textfield_search_material</item> <item?name="submitBackground">@drawable/abc_textfield_search_material</item> <item?name="closeIcon">@drawable/abc_ic_clear_mtrl_alpha</item> <item?name="searchIcon">@drawable/abc_ic_search_api_mtrl_alpha</item> <item?name="searchHintIcon">@drawable/abc_ic_search_api_mtrl_alpha</item> <item?name="goIcon">@drawable/abc_ic_go_search_api_mtrl_alpha</item> <item?name="voiceIcon">@drawable/abc_ic_voice_search_api_mtrl_alpha</item> <item?name="commitIcon">@drawable/abc_ic_commit_search_api_mtrl_alpha</item> <item?name="suggestionRowLayout">@layout/abc_search_dropdown_item_icons_2line</item>在問題3的基礎上修改如下
<style?name="AppBarTheme"?parent="ThemeOverlay.AppCompat.Dark.ActionBar"><item?name="android:textColorPrimary">@color/white</item><item?name="colorAccent">@color/white</item><item?name="searchViewStyle">@style/SearchView</item> </style>這樣就可以自定義searchview樣式
總結
以上是生活随笔為你收集整理的自定义Toolbar的一些小技巧的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android魔法(第四弹)—— 一步步
- 下一篇: 使用FastJson解析时有关内部类的两