1. 程式人生 > >android 5.0新增的控制元件總結

android 5.0新增的控制元件總結

5.0中新添加了很多控制元件,為了便於學習和總結這裡我給大家歸納了一下:

使用方式:builde.gride檔案中新增下面的依賴,

compile 'com.android.support:design:22.2.0'   //可修改版本號為對應的buildToolsVersion版本

然後就可以使用所有的控制元件了,如下:

1、android.support.v7.widget.CardView 

簡介:該控制元件是一個卡片佈局,繼承FrameLayout。

CardView常用屬性:
card_view:cardElevation 陰影的大小
card_view:cardMaxElevation 陰影最大高度
card_view:cardBackgroundColor 卡片的背景色
card_view:cardCornerRadius 卡片的圓角大小
card_view:contentPadding 卡片內容於邊距的間隔
card_view:contentPaddingBottom
card_view:contentPaddingTop
card_view:contentPaddingLeft
card_view:contentPaddingRight
card_view:contentPaddingStart
card_view:contentPaddingEnd
card_view:cardUseCompatPadding 設定內邊距,V21+的版本和之前的版本仍舊具有一樣的計算方式
card_view:cardPreventConrerOverlap 在V20和之前的版本中新增內邊距,這個屬性為了防止內容和邊角的重疊

掃描關注我的微信公眾號:


效果圖:


2、android.support.v7.widget.RecyclerView

簡介:該控制元件用來替代ListView,具有高度的鬆耦合性,主要不同就是省去了我們自己去建立ViewHolder類,大概使用步驟如下:

   verify_rv = (RecyclerView) findViewById(R.id.verify_rv);
//佈局管理器,有水平和垂直兩種,總共有下面3種,另外兩種:GridLayoutManager 網格佈局管理器,StaggeredGridLayoutManager 瀑布就式佈局管理器
   verify_rv.setLayoutManager(new LinearLayoutManager(this));
//  保持固定的大小,該資訊被用於自身的優化
   verify_rv.setHasFixedSize(true);
//介面卡
   adapter = new OrderRvAdapter(this);
  verify_rv.setAdapter(adapter);
效果圖:

3、android.support.design.widget.FloatingActionButton

簡介:用來在介面上顯示一個懸浮的按鈕,有大小兩種尺寸。

效果圖:


4、android.support.design.widget.TextInputLayout

簡介:一般巢狀一個EditText,用來在輸入內容後提示內容顯示在外面,還具有空校驗。

效果圖:


5、android.support.design.widget.TabLayout

簡介:用來和Viewpager結合使用來作為Viewpager的選項卡。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    xmlns:app="http://schemas.android.com/apk/res-auto"  
    android:orientation="vertical">  
  
    <android.support.design.widget.TabLayout  
        android:id="@+id/tab_FindFragment_title"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:background="@color/titleBlue"  
        app:tabIndicatorColor="@color/white"  
        app:tabSelectedTextColor="@color/gray"  
        app:tabTextColor="@color/white"  
        />  
  
  
    <android.support.v4.view.ViewPager  
        android:id="@+id/vp_FindFragment_pager"  
        android:layout_width="fill_parent"  
        android:layout_height="0dp"  
        android:layout_weight="1"  
        />  
  
</LinearLayout>  
然後在viewpager設定adapter之後呼叫下面程式碼: tab_FindFragment_title.setupWithViewPager(vp_FindFragment_pager); 就可以實現和viewpager滑動實現聯動效果,選項卡內容在viewpager的adapter的gettitle方法中設定(選項卡可以動也可以不動)。

效果圖:

6、android.support.design.widget.NavigationView

簡介:在Material Design中,Navigation drawer導航抽屜,被設計用於應用導航,提供了一種通用的導航方式,體現了設計的一致性。
而NavigationView的典型用途就是配合之前v4包的DrawerLayout,作為其中的Drawer部分,即導航選單的本體部分。NavigationView是一個導航選單框架,使用menu資源填充資料,使我們可以更簡單高效的實現導航選單。它提供了不錯的預設樣式、選中項高亮、分組單選、分組子標題、以及可選的Header。
使用方式:

<android.support.v4.widget.DrawerLayout
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

   <!-- Content -->
    <FrameLayout
        android:id="@+id/content_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

   <!-- Drawer -->
    <android.support.design.widget.NavigationView
        android:id="@+id/navigation"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:headerLayout="@layout/drawer_header"
        app:menu="@menu/drawer"/>
</android.support.v4.widget.DrawerLayout>

程式碼中:
mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(MenuItem menuItem) {
                switch (menuItem.getItemId()) 
                {
                    case R.id.item_one:
                        getSupportFragmentManager().beginTransaction().replace(R.id.frame_content,new FragmentOne()).commit();
                        mToolbar.setTitle("我的動態");
                        break;
                    case R.id.item_two:
                        getSupportFragmentManager().beginTransaction().replace(R.id.frame_content,new FragmentTwo()).commit();
                        mToolbar.setTitle("我的留言");
                        break;
                    case R.id.item_three:
                        getSupportFragmentManager().beginTransaction().replace(R.id.frame_content,new FragmentThree()).commit();
                        mToolbar.setTitle("附近的人");
                        break;
                }
                menuItem.setChecked(true);//點選了把它設為選中狀態
                mDrawerLayout.closeDrawers();//關閉抽屜
                return true;
            }
        });
    }
效果圖(佈局檔案中新增的抽屜內容,在app標籤中):



7、android.support.design.widget.CoordinatorLayout

簡介:該控制元件和新發布的這些控制元件聯合使用,只要把他作為一個容器類使用就好了,一邊用作跟佈局。


8、android.support.design.widget.AppBarLayout

簡介:用來和toolbar聯合使用,達到Material Design效果。

效果圖:


9、android.support.design.widget.CollapsingToolbarLayout

簡介:CollapsingToolbarLayout作用是提供了一個可以摺疊的Toolbar,它繼承至FrameLayout,給它設定layout_scrollFlags,它可以控制包含在CollapsingToolbarLayout中的控制元件(如:ImageView、Toolbar)在響應layout_behavior事件時作出相應的scrollFlags滾動事件(移除螢幕或固定在螢幕頂端)。

效果圖:


10、toolBar

簡介:用來取代actionbar,效果圖入appbarLayout上面的效果圖。

下面是幾個新出來的類:

1、android.support.design.widget.Snackbar    其和Toast是類似的,彈出一個提示框,不需要再佈局檔案中使用

效果圖:


2、Palette 顏色選擇器,從bitmap中提取顏色值

簡介:從一張圖片中提取出關鍵的顏色,可以把該顏色值設定到別的控制元件上面。

效果圖: