最近項目中須要用到Material Design,整理了下面幾個經常使用的控件,以便記憶。android
1、Snackbarapp
1.做用:與Toast相似,可是能夠點擊監聽;佈局
2.使用:spa
(1)Snackbar調用靜態類make(),傳入三個參數:View父組件,文本,顯示時間;code
(2)Snackbar調用setAction(),傳入兩個參數:文本,點擊監聽事件實現OnClickListener接口;對象
(3)顯示show()與隱藏dismiss();blog
2、TextInputLayout索引
1.做用:包裹在EditText外邊,能夠將文本在EditText上方提示,同時能夠設置錯誤提示;接口
2.使用:事件
(1)TextInputLayout對象調用setErrorEnable(),傳入boolean類型參數表示是否顯示錯誤信息;
(2)TextInputLayout對象調用SetError(),設置錯誤信息;
3、FloationgActionButton
1.做用:懸浮在頁面上方的按鈕;
2.特有屬性:
app:elevation="5dp" //陰影效果 app:pressedTranslationZ="10dp" //按壓時顯示效果 app:rippleColor="@color" //顏色
4、DrawerLayout
1.做用:做爲佈局的子佈局,實現左右兩側的側滑效果,用於添加菜單;
2.使用:(1)以DraweLayout做爲根佈局,內部能夠包含三個及三個如下佈局;
(2)爲做爲菜單的佈局設置android:layout_gravity屬性,在左側顯示值爲」left」,在右側顯示值爲」right」;
(3)動態打開或關閉DrawerLayout中的佈局:
DraweLayout對象調用openDrawer(),傳入Gravity.Left或者Gravity.Right兩種參數值打開關閉佈局;
DrawerLayout對象調用closeDrawer(),傳入兩種參數值關閉佈局;
5、NavigationView
1.做用 :做爲導航欄或者菜單欄的Menu視圖添加;
2.使用:(1)靜態屬性:app:headerLayout添加頭佈局文件;
(2)靜態屬性:app:menu添加菜單文件;
(3)設置頭視圖監聽:
(3-1)獲得頭視圖:NavigationView對象調用getHeaderView(),傳入索引號0;
注意:若是沒有getHeaderView(),可使用findViewById()獲得頭視圖;
(3-2)找控件:頭視圖調用findViewById()獲得頭視圖中的控件;
(3-3)設置監聽事件:獲得的控件調用setOnClickListener();
(4)設置menu按鈕監聽:
NavigationView對象調用setNavigationItemSelectedListener(),
傳入NavigationView. OnNavigationViewIntemSelectedListener接口,
重寫onNavigationItemSelected()接口;
6、TabLayout
1.做用:與ViewPager結合,達到聯動導航效果;
2. 靜態屬性:
1 app:tabIndicatorColor="@color/colorAccent" 2 app:tabIndicatorHeight="5dp" 3 app:tabSelectedTextColor="@color/colorAccent" 4 app:tabTextColor="#ffffff"
3.動態使用:
(1)聲明並實例化TabLayout,ViewPager;
(2)爲ViewPager控件設置適配器;
(3)設置Tablayout與ViewPager的聯動:
(3-1)TabLayout對象調用setupWithViewPager()傳入要聯動的ViewPager對象;
(3-2)在自定義ViewPager的適配器中,重寫getPageTitle(),返回當前標題;
(3-3)TabLayout對象調用setTabMode(),傳入TabLayout.MODE_SCROLLABLE常量,設置TabLayout的滾動;
7、NestedScrollView
1.做用:替代ScrollView;
2.使用:與ScrollView相同,內部只能有一個子控件;
8、Toolbar
1.做用:
注意:使用Toolbar時必須將該Activity的主題設置爲NoActionBar屬性值;
2.使用:Toolbar控件必須放在AppBarLayout控件中,而AppBarLayout最好放在CoordinatorLayout控件(協同佈局)中;
3.靜態屬性:
1 app:layout_scrollFlags=」scroll|enterAlways」 //Toolbar控件中,設置滑動響應事件; 2 app:title=」」 //爲Toolbar設置標題名; 3 app:layout_behavior="@string/appbar_scrolling_view_behavior" //NestedScrollView控件中,設置控件行爲
4.動態方法:
(4-1)聲明並實例化Toolbar控件實例;
(4-2)將ActionBar設置爲Toolbar:在當前Activity中調用setSupportActionBar(),傳入新建立的Toolbar對象;
(4-3)當前Activity主題修改成NoActionBar模式:在清單文件中設置當前Activity標籤下的屬性android:theme="@style/Theme.AppCompat.NoActionBar";
注意:只有當前Activity主題爲NoActionBar時,纔會顯示Toolbar;
9、CollapsingToolbar
1.做用:實現Toolbar的摺疊效果;
2.使用:
CollapsingToolbar必須放在AppBarLayout中,
而AppBarLayout最好放在協同佈局CoordinatorLayout控件中;
而Toolbar做爲CollapsingToolbar的不折疊控件使用;
注意:CollapsingToolbar控件之下必須有且只有兩個控件;
3.靜態屬性:
1 app:title=」標題」 //設置標題內容 2 app:layout_scrollFlags="scroll|exitUntilCollapsed" //設置滾動標記 3 app:expandedTitleGravity="right|bottom" //設置標題位置 4 app:expandedTitleMarginBottom="@dimen/activity_vertical_margin" //設置標題到底部的距離 5 app:expandedTitleMarginEnd="@dimen/activity_horizontal_margin" //設置標題距底部的距離 6 app:contentScrim="#00ff00" //設置摺疊時上方控件的顏色 7 //注意:下邊兩條屬性必須設置; 8 app:layout_collapseMode="parallax" //在其須要被摺疊的子控件中; 9 app:layout_collapseMode="pin": //在須要留下來的子控件中;
4.動態設置:
//(1)設置展開狀態下標題顏色 collapsingToolbarLayout.setExpandedTitleColor(Color.WHITE); //(2)設置摺疊後標題顏色 collapsingToolbarLayout.setCollapsedTitleTextColor(Color.BLUE);