Material Design(1)

Material Design1

author——XiYoung

參考文檔:

鏈接1
鏈接2

強(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é)果:

enter image description here

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

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);

即將更新

TabLayout:導(dǎo)航欄

AppBarLayout:配合導(dǎo)航欄形成可折疊的效果

CollapsingToolbarLayout:可折疊效果的協(xié)調(diào)器

NestedScrollView:可折疊效果的滾動(dòng)控件

CardView:卡片

RipperView:點(diǎn)擊水波紋效果

FloatingActionButton:懸浮窗口

Snackbar:代替Toast的小控件

NavigationView:配合DrawnLayout的側(cè)滑攔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容