目錄:
1.TextInputLayout的使用
2.FloatingActionButton的使用
3.Snackbar的使用
4.TabLayout的使用
5.CoordinatorLayout的使用
6.指紋識别功能的支援 7.APP關聯
8.電量管理
目錄:
1.TextInputLayout的使用
2.FloatingActionButton的使用
3.Snackbar的使用
4.TabLayout的使用
5.CoordinatorLayout的使用
6.指紋識别功能的支援 7.APP關聯
8.電量管理
1. TextInputLayout的使用
- 進階炫酷帶有提示的輸入框,相當于輸入框中的戰鬥框
- 使用需要依賴design類庫:
compile 'com.android.support:design:23.0.0+'
- 使用步驟:
- 先在TextInputLayout中包裹一個EditText,如:
- 然後給EditText添加文本變化監聽器:
editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { if(s.length() > 5){ //設定錯誤提示資訊 inputLayout.setError("不能超過5個"); //啟用錯誤提示 inputLayout.setErrorEnabled(true); }else{ //關閉錯誤提示 inputLayout.setErrorEnabled(false); } } });
2. FloatingActionButton的使用
- 總是能懸浮在界面上的Button,可以設定點選事件
- 使用需要依賴design類庫:
compile 'com.android.support:design:23.0.0+'
- 可以設定以下屬性:
app:fabSize="normal"//2個取值,normal=56dp,mini=48dp app:elevation="10dp"//高度 app:rippleColor="#0000ff"//按下水波紋顔色 app:pressedTranslationZ="20dp"//按下Z軸移動距離 注意:設定android:clickable="true"才有按下的效果
3. Snackbar的使用
- 一個介于Toast和Dialog之間的和使用者互動的控件,顯示在界面底部,并且可以設定點選行為,也可以滑動出去
- 在和FloatingActionButton一起使用時,需要讓CoordinatorLayout作為父布局才能使FloatingActionButton給SnackBar騰出空間
4. TabLayout的使用
- 相當于ViewPagerIndicator的訓示器效果,一般用來跟ViewPager結合使用
- 使用需要依賴design類庫:
compile 'com.android.support:design:23.0.0+'
- 單獨使用TabLayout的步驟:
- 先添加Tab,使用tabLayout.newTab()方法建立Tab:
//1.添加Tab tabLayout.addTab(tabLayout.newTab().setText("Tab1"));
- 給tabLayout設定tab改變的監聽器:
//2.給tabLayout添加tab改變的監聽器 tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { Log.e("TAG", "onTabSelected: "+tab.getText()); } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } });
- 在xml中給TabLayout設定屬性:
app:tabIndicatorColor="#00f"//橫線顔色 app:tabSelectedTextColor="#f00"//選中字型顔色 app:tabTextColor="#0f0"//預設字型顔色 app:tabMode="fixed"//fixed:不能滑動,每個Tab平分寬度,scrollable:可以滑動tab,每個tab寬度很小,适用于tab很多的情景 app:tabGravity="fill"//fill:平分寬度,center:讓tab居中,如果tabMode是scrollable,那tabGravity會被忽略
- 先添加Tab,使用tabLayout.newTab()方法建立Tab:
- 和ViewPager關聯使用步驟:
- 先給ViewPager填充資料,然後關聯TabLayout和ViewPager:
//給ViewPager填充資料 viewpager.setAdapter(new MyAdapter()); //關聯TabLayout和ViewPager tabLayout.setupWithViewPager(viewpager);
- 需要注意的是,ViewPager的adapter的getPageTitle()方法的傳回值将會設定給Tab的标題
- 先給ViewPager填充資料,然後關聯TabLayout和ViewPager:
5. CoordinatorLayout的使用
- 協調布局,能夠協調多個布局的位置關系,可以實作讓FAB上下滑動,展開或折疊ToolBar,控制View擴充收縮以及放大縮小
- 使用需要依賴design類庫:
compile 'com.android.support:design:23.0.0+'
- 使用它結合AppBarLayout實作向上滑動隐藏ToolBar的效果:
- AppBarLayout會将包裹的所有子View作為一個整體的AppBar,有着統一的界面着色;
- app:layout_scrollFlags屬性介紹:
scroll:表示該View可以被滑動出CoordinatorLayout的範圍,所有想滾動出螢幕的view都需要設定這個flag, 沒有設定這個flag的view将被固定在螢幕頂部。例如,TabLayout 沒有設定這個值,将會停留在螢幕頂部 enterAlways:表示任意向下的滾動都會導緻該View可見 exitUntilCollapsed:滾動退出螢幕,最後折疊在頂端 enterAlwaysCollapsed:當你的視圖已經設定minHeight屬性又使用此标志時,你的視圖隻能以最小高度進入,隻有當滾動視圖到達頂部時才擴大到完整高度
- 給想滑動出範圍的View設定屬性,比如ToolBar:
app:layout_scrollFlags=”scroll|enterAlways
- 給發出滑動行為的View設定屬性,比如ViewPager:
app:layout_behavior="@string/appbar_scrolling_view_behavior"
- 實作步驟:
1.CoordinatorLayout作根控件,包裹AppBarLayout和可滾動的控件,比如ViewPager 2.AppBarLayout包裹 ToolBar 及TabLayout, ToolBar要滑動,給其設定app:layout_scrollFlags 3.ViewPager是發出滑動行為的控件,設定屬性 app:layout_behavior 注意:帶layout_scrollFlags的view需要放在固定View的前面,這樣滑動的view才能夠正常退出,而固定的view繼續留在頂部