????????自從谷歌在2014年的IO大會上推出了Material Design新的設(shè)計規(guī)范后,安卓應(yīng)用的整體美觀程度提升了很大的一個層次, 安卓再也不是又黑又丑的界面,取而代之的是擁有豐富的顏色,美觀的按鈕,好的用戶體驗;針對Material Design推出的新控件做個簡單的說明和使用介紹缰趋,加深印象:
DrawLayout ??NavigationView
????????在Materil Design中,NavigationView作為一個抽屜導(dǎo)航來實現(xiàn)app內(nèi)部的交互,讓實現(xiàn)更簡單,同時還能直接通過菜單資源元素直接生成導(dǎo)航元素;NavigationView 的使用需要結(jié)合DrawLayout一起使用捧杉。
navigation_menu的使用
注意:其中checked=”true”的item將會高亮顯示,這可以讓用戶知道當(dāng)前選中的菜單項是哪個秘血。當(dāng)然,item的選中狀態(tài)可以在代碼中設(shè)置;
注意:我們上面實現(xiàn)的是menu菜單的點擊事件,我們?nèi)绻卣{(diào)headerLayout的點擊事件該怎么寫呢,NavigationView并沒有提供一個類似于menu的點擊監(jiān)聽,而是提供了一個getHeaderView(int index)的api,所以頭布局的點擊事件應(yīng)該這么寫:
mNavigationView.getHeaderView(0).setOnClickListener(new?View.OnClickListener()?{??
????????????????????@Override??
????????????????????public?void?onClick(View?v)?{??
????????????????????????????????Toast.makeText(NavigationViewActivity.this,"Pic",Toast.LENGTH_SHORT).show();??
??????????????????????}??
? ? }); ?
小貼士:NavigationView還提供了一個getHeaderCount()的api返回頭布局一共有多少個子view,可以實現(xiàn)任一控件的監(jiān)聽;
TextInputLayout ?注意:?TextInputLayout的顏色來自style中的colorAccent的顏色,除了顯示提示信息味抖,還可以通過調(diào)用setError()在EditText下面顯示一條錯誤信息。
FloatingActonButton ??懸浮操作按鈕 (SnackBar 類似于toash的使用)
是一個負責(zé)顯示界面基本操作的圓形按鈕,它實現(xiàn)了一個默認顏色為主題中colorAccent的懸浮操作按鈕灰粮,它是一個帶有陰影的圓形按鈕仔涩,可以通過fabSize來改變其大小;有以下屬性:
默認顏色為colorAccent的顏色值,可以通過app:backgroundTint 屬性或者setBackgroundTintList (ColorStateList tint)方法去改變背景顏色。
改變尺寸:通過設(shè)置 app:fabSize 屬性(mini or normal)
android:src 改變drawable
app:rippleColor 設(shè)置點擊時候的顏色(水波紋效果)
app:borderWidth 設(shè)置button的邊框?qū)挾?該屬性尤為重要谋竖,如果不設(shè)置0dp红柱,那么在4.1的sdk上FAB會顯示為正方形承匣,而且在5.0以后的sdk沒有陰影效果。所以設(shè)置為borderWidth=”0dp”
app:elevation 設(shè)置平常陰影狀態(tài)的深度(默認6dp)
app:pressedTranslationZ 設(shè)置點擊狀態(tài)的陰影深度(默認12dp)
app:layout_anchor - 設(shè)置FAB的錨點锤悄,即以哪個控件為參照點設(shè)置位置
app:layout_anchorGravity - 設(shè)置FAB相對錨點的位置韧骗,值有 bottom、center零聚、right袍暴、left、top等
用法,放在屏幕右下角:
mFabBtn.setOnClickListener(new View.OnClickListener() {
????????@Override
? ? ????public void onClick(View v) {
????????????????Snackbar.make(v,"哈哈哈哈哈哈",Snackbar.LENGTH_LONG).setAction("Action", new View.OnClickListener() {
????????????????????????@Override
? ? ? ? ? ? ? ? ? ? ? ? ? ?public void onClick(View v) {
????????????????????????????????????????Toast.makeText(FloatingActonButtonActivity.this,"退出",Toast.LENGTH_SHORT).show();
? ? ? ? ? ????????????????? }
????????????????}).show();
? ????? }
});
詳細用法參考:http://blog.csdn.net/lmj623565791/article/details/46678867
TabLayout
| 屬性 | 含義 |
| -------- | ----- | ---- |
|app:tabIndicatorColor="#EF4A11"? |? ? tab文字下方的那條線的顏色 |
|app:tabMode="scrollable" |? 如果tab過多超出屏幕寬度可以水平滾動|
| app:tabMode="fixed" | 底部tab布局不可滑動 |
|app:tabSelectedTextColor="#FFFFFF" | tab被選中的時候文字的顏色|
|app:tabTextColor="#FFFFFF"? ? |? ? tab未被選中時文字的顏色|
|app:tabIndicatorHeight="0dp" | 不顯示tab底部的橫線 |
注:
scrollable可以滑動隶症,向左對齊政模,如今日頭條,網(wǎng)易新聞就是scrollable蚂会,但是在Tab選項卡較少時會無法填滿TabLayout欄淋样。
fixed則無法滑動,每個選項卡平均分配空間胁住,適合較少Tab選項卡的情況趁猴,當(dāng)選項卡較多時,會出現(xiàn)每個選項卡內(nèi)容無法顯示完整的情況
參考鏈接:http://www.reibang.com/p/51f3a17df49d
AppBarLayout:
AppBarLayout 是繼承LinerLayout實現(xiàn)的一個ViewGroup容器組件,默認的AppBarLayout是垂直方向的,它的作用是把AppBarLayout所包裹的內(nèi)容都作為AppBar, 支持手勢滑動操作,可以管理其中的控件在內(nèi)容滾動時的行為彪见。
ToolBar
Toobar主要是用來替換ActionBar的儡司,換句話說,ActionBar能做的余指,Toolbar都能做捕犬。既然是替換,當(dāng)然用Toolbar的時候就得先去把ActionBar給隱藏掉啦~
CoordinatorLayout
CollapsingTollbarLayout
CollapsingToolbarLayout是用來對Toolbar進行再次包裝的ViewGroup酵镜,主要是用于實現(xiàn)折疊(其實就是看起來像伸縮~)的App Bar效果碉碉。它需要放在AppBarLayout布局里面,并且作為AppBarLayout的直接子View笋婿。
CardView
AutoScrollView