Material Design1
author——XiYoung
參考文檔:
強(qiáng)烈建議看英文原文文檔,此處為我學(xué)習(xí)的時(shí)候?qū)懸恍┕P記,很多不當(dāng)之處,共同學(xué)習(xí);
Toobar
enter image description here

使用方法
1.確保在對(duì)應(yīng)Application的build.gradle中添加了AppCompat-v7support
dependencies { compile 'com.android.support:appcompat-v7:23.1.0+'}
2.設(shè)置主題(讓你的主題繼承自Theme.AppCompat.NoActionBar)
一定要設(shè)置NoActionBar主題不然會(huì)拋出異常,導(dǎo)致崩潰
<resources>
<style name="AppTheme"
parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">#673AB7</item>
<item name="colorPrimaryDark">#512DA8</item>
<item name="colorAccent">#FF4081</item>
<item name="android:windowBackground">@color/window_background</item>
</style>
</resources>```
3.添加到對(duì)應(yīng)的Activity Layout XML布局中
- **注意:** `xmlns:app="http://schemas.android.com/apk/resauto"`
```android:layout_height="?attr/actionbarSize"```
- 對(duì)應(yīng)代碼
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:minHeight="?attr/actionBarSize"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:titleTextColor="@android:color/white"
android:background="?attr/colorPrimary">
</android.support.v7.widget.Toolbar>
</LinearLayout>```
4.在代碼中設(shè)置
public class MyActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
final ActionBar ab = getSupportActionBar(); //這是控制menu菜單的開關(guān)顯示
ab.setHomeAsUpIndicator(R.drawable.ic_menu); //是否顯示drawerlayout開關(guān)
ab.setDisplayHomeAsUpEnabled(true);
}
//填充菜單布局
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; 此處和actionbar一樣寫Menu(在Menu文件夾下)
getMenuInflater().inflate(R.menu.menu_main, menu); return true;
}
//toolbar的開始菜單開關(guān)
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case android.R.id.home:
mdrDrawerLayout.openDrawer(GravityCompat.START);
break;
default :
break;
}
return super.onOptionsItemSelected(item);
}
}
###定制Toolbar的主題風(fēng)格
####可以通過設(shè)置Theme的方法來設(shè)置Toolbar的主題
```xml
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ToolbarTheme"
app:titleTextAppearance="@style/Toolbar.TitleText"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
1.布局文件中定義你的主題樣式
<!-- 讓Application的BaseTheme繼承自Theme.AppCompat.Light.NoActionBar -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!--定義你的主題顏色-->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<!--設(shè)置你的toolbar的主題繼承自@style/ThemeOverlay.AppCompat.Dark.ActionBar-->
<style name="ToolbarTheme" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<!-- 設(shè)置toolbar的背景顏色 -->
<item name="android:background">@color/colorPrimary</item>
<!-- 設(shè)置toolbar的文字顏色 -->
<item name="android:textColorPrimary">@android:color/holo_blue_light</item>
<!-- 設(shè)置菜單Menu的文字的顏色-->
<item name="actionMenuTextColor">@android:color/holo_green_light</item>
<!--如果你想要點(diǎn)擊又說博文的效果需要設(shè)置一下的屬性 -->
<!--
<item name="selectableItemBackground">?android:selectableItemBackground</item>
<item name="selectableItemBackgroundBorderless">?android:selectableItemBackground</item>
-->
</style>
<!-- 這個(gè)是Toolbar的標(biāo)題title的屬性 -->
<style name="Toolbar.TitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
<item name="android:textSize">21sp</item>
<item name="android:textStyle">italic</item>
</style>
結(jié)果

2.單獨(dú)自定義標(biāo)題View
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:minHeight="?attr/actionBarSize"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:titleTextColor="@android:color/white"
android:background="?attr/colorPrimary">
<TextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Toolbar Title"
android:textColor="@android:color/white"
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
android:layout_gravity="center" /></android.support.v7.widget.Toolbar>
這就意味著設(shè)置空間的時(shí)候需要在toolbar中找控件
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
TextView mTitle = (TextView) toolbar.findViewById(R.id.toolbar_title);
mTitle.setText("Toolbar Title");
結(jié)果:

注意:使用此方法必須隱藏默認(rèn)的標(biāo)題
getSupportActionBar().setDisplayShowTitleEnabled(false);//顯示返回箭頭按鈕
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);