天天看點

Android 6.0新特性總結

目錄:
	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會被忽略
            
  • 和ViewPager關聯使用步驟:
    • 先給ViewPager填充資料,然後關聯TabLayout和ViewPager:
      //給ViewPager填充資料
      viewpager.setAdapter(new MyAdapter());
      //關聯TabLayout和ViewPager
      tabLayout.setupWithViewPager(viewpager);      
    • 需要注意的是,ViewPager的adapter的getPageTitle()方法的傳回值将會設定給Tab的标題

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繼續留在頂部