一、基本使用
- 首先要使用沒有Actionbar的主題:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
</style>
- Toolbar本身的標(biāo)題是居左的,所以一般在其布局下添加TextView作為標(biāo)題:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:elevation="4dp"
app:navigationIcon="@drawable/ic_arrow_left"
app:theme="@style/Theme.Toolbar">
<TextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:maxLines="1"
android:text="@string/app_name"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />
</android.support.v7.widget.Toolbar>
其中的 app:navigationIcon="@drawable/ic_arrow_left" 是設(shè)置左側(cè)返回按鈕的,也可以設(shè)置成其他功能按鍵。
- 在Activity中設(shè)置Actionbar:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
//左側(cè)返回鍵監(jiān)聽
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
- 去掉Toolbar自帶的標(biāo)題
直接設(shè)置Toolbar的 android:title="",并不能去掉標(biāo)題,這個(gè)設(shè)置是無效的。解決辦法:
//方法一:隱藏標(biāo)題
getSupportActionBar().setDisplayShowTitleEnabled(false);
//方法二:設(shè)置標(biāo)題為空
getSupportActionBar().setTitle("");
二、Toolbar中的搜索框樣式
<style name="Theme.Toolbar" parent="ThemeOverlay.AppCompat.Light">
<!--搜索框樣式-->
<item name="searchViewStyle">@style/Widget.SearchView</item>
</style>
<!--Toolbar中搜索框樣式-->
<style name="Widget.SearchView" parent="Widget.AppCompat.SearchView">
<!--默認(rèn)提示-->
<item name="defaultQueryHint">"請(qǐng)輸入關(guān)鍵字"</item>
<!--搜索圖標(biāo)-->
<item name="searchIcon">@drawable/ic_search_white_24dp</item>
<!--關(guān)閉圖標(biāo)-->
<item name="closeIcon">@drawable/ic_close_white_24dp</item>
</style>
三、Toolbar中的OverflowButton樣式
<style name="Theme.Toolbar" parent="ThemeOverlay.AppCompat.Light">
<!-- Toolbar 右側(cè)菜單圖標(biāo) 默認(rèn)圖標(biāo)是三個(gè)點(diǎn)-->
<item name="actionOverflowButtonStyle">@style/OverFlowIcon</item>
</style>
<!--Toolbar中OverflowButton樣式-->
<style name="OverFlowIcon" parent="Widget.AppCompat.ActionButton.Overflow">
<item name="android:src">@drawable/ic_dehaze_white_24dp</item>
</style>
四、Toolbar的其他屬性
<style name="Theme.Toolbar" parent="ThemeOverlay.AppCompat.Light">
<!-- 菜單文字的顏色 -->
<item name="actionMenuTextColor">@android:color/white</item>
<!-- 溢出菜單的文字的顏色 -->
<item name="android:textColor">@android:color/background_dark</item>
<!-- 菜單的字體大小-->
<item name="android:textSize">16sp</item>
<!--Toolbar文字及圖標(biāo)顏色-->
<item name="android:textColorPrimary">@color/colorPrimary</item>
<!--Hint文字顏色-->
<item name="android:textColorHint">@color/white</item>
<!--光標(biāo)顏色-->
<item name="colorAccent">@color/white</item>
</style>