1. 程式人生 > >Design庫,所有控件的使用

Design庫,所有控件的使用

nbut mil content private get snackba set ren pro

導入地址com.android.support:design:23.2.0。技術分享。輸入design搜索到確認就可以。
布局中android.support.design.widget.XXX,調用控件
控件一:FloatingActionButton-浮動的圓形button
屬性:布局中加入xmlns:app”
http://schemas.android.com/apk/res-auto
app:backgroundTint=”#ff0000”//設置背景色
app:fabSize=”normal”//包裹src圖片,屬性mini縮小控件達到src的大小
app:elevation=”5dp”//x軸陰影效果
app:rippleColor=”#000000”//點擊效果顏色

控件二:TextInputLayout-優化EditText
屬性:必須存放子控件:EditText
代碼:textinput.setHint(“這裏填寫提示信息”);
EditText edittext=textinput.getEditText();
edittext.addTextChangedListener(new TextWatcher(){
方法:beforeTextChanged:
方法:onTextChanged:
if(s.length()>10){
textInput.setError(“username不能超過10位”);//限制10個字節
textInput.setErrorEnabled(true);
}else{
textInput.setErrorEnabled(false);
}
方法:afterTextChanged:
});
控件三:Snackbar- 可交互的提示框(相當於Toast位於bottom)
代碼:在控件的點擊事件中調用
final Snackbar snackbar=Snackbar.make(btn,”你點擊了button”。Snackbar.LENGTH_LONG).show();
snackbar.setAction(“知道了”。new View.OnClickListener(){
snackbar.dismiss();
}
});
控件四:TabLayout 便捷標簽
屬性:app:[email protected]:color/black”//未選中字體顏色
app:[email protected]
/* */:color/XXX”//選中字體的顏色
app:tabIndicatorColor=”“//下標指示器的顏色(滑標)
app:tabIndicatorHeight=”“//下標指示器的高度
app:tabMode=”scrollable”//可滑動標簽
//背景色直接bg就能夠
代碼: 獲取tabs控件
tabs.addTab(tabs.newTab().setText(“Tab1”));//加入標簽名稱
加入viewpager一起使用:加入viewpager到布局。
Listtitles=new ArrayList<>();
Listfragments=new ArrayList<>();
for(int i=0;i<4;i++){
String title=”Tab”+(i+1);
tabs.addTab(tabs.newTab().setText(title));
titles.add(title);
Fragment fragment=new JikeFragment(title);
fragments.add(fragment);
}
獲取viewpager控件
XXXFragmentAdapter mAdapter=new XXXFragmentAdapter(getSupportFragmentManager(), fragments, titles);
viewpager.setAdapter(mAdapter);
tabs.setupWithViewPager(viewpager);
tabs.setTabsFromPagerAdapter(mAdapter);

創建XXXfragment,在xxxfragment中加入構造函數:
String mTitle;
public xxxfragment(String title){
mTitle=title;
}
在onCreateView中:
text=setText(mTitle);
創建XXXFragmentAdapter
public class XXXFragmentAdapter extends FragmentStatePagerAdapter {

private List<Fragment> mFragments;
private List<String> mTitles;

public EventTabFragmentAdapter(FragmentManager fm, List<Fragment> fragments, List<String> titles) {
    super(fm);
    mFragments = fragments;
    mTitles = titles;
}

@Override
public Fragment getItem(int position) {
    return mFragments.get(position);
}

@Override
public int getCount() {
    return mFragments.size();
}

@Override

public CharSequence getPageTitle(int position) {
return mTitles.get(position);

}

}

控件五: NavigationView-側滑視圖 屬性:布局中加入xmlns:app”http://schemas.android.com/apk/res-auto 創建布局xxxlayout.xml 布局中創建android.support.v4.widget.DrawerLayout控件 控件中創建NavigationView app:headerLayout="@layout/head_view"//創建head_view布局(頭部布局) app:menu="@menu/ment_main"(菜單布局) android:layout_gravity="left" android:fitsSystemWindows="true" 代碼:獲取drawerLayout控件 drawerLayout.closeDrawer();//控制側滑菜單的顯示opean與隱藏close 控件六:CoordinatorLayout-完美協調子View工作的核心部件 1.屬性:根布局CoordinatorLayout 使用FloatingActionButton控件 使用Snackbar控件 1.效果:隨著Snackbar的彈出FloatingActionButton不被覆蓋,隨著Snackbar向上移動。 2.屬性:控件android.support.design.widget.CoordinatorLayout//相當於優化的FrameLayout app:contentScrim="#77DB93"//動畫結束後顯示toolbar //二 控件 android.support.design.widget.AppBarLayout //用於兼容Tb與CL
              android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar//設置字體顏色為白色//二
控件android.support.design.widget.CollapsingToolbarLayout//用於滑動縮小整個上邊布局
app:expandedTitleMarginStart="80dp"//設置邊距 控件ImageView //第二部分
                 app:layout_collapseMode="parallax"//終於顯示圖片中間位置
                 //參數none,終於顯示圖片底部
                 //參數bin,依然顯示在圖片底部無效果
                 app:layout_collapseParallaxMultiplier="0.8"//調節視覺差,值越小動態效果越快
控件android.support.v7.widget.Toolbar
              android:layout_height="?attr/actionBarSize"//系統默認高度
              app:layout_scrollFlags="scroll|enterAlways"//上滑隱藏Toolbar/下滑顯示Toolbar//二、挪到CTL中
              //參數enterAlwaysCollapsed僅僅有下滑到第一個控件的時候再顯示
              //參數exitUntilCollapsed配合android:minHeight使用,上滑動隱藏余留一個最小高度,不寫最小高度為默認高度
              app:popupTheme="@style/ThemeOverlay.AppCompat.Light"//設置背景色為白色(沒有作用)
              app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"//去除系統默認title
              (內部內容
               <item name="android:windowActionBar">false</item>
               <item name="android:windowNoTitle">true</item>
               <item name="windowActionBar">false</item>
               <item name="windowNoTitle">true</item>
              ) 
              //第二部分
              app:layout_collapseMode="pin"//固定toolbar不隱藏
              //參數parallax隨著圖片縮小Toolbar也隨著隱藏,同一時候進行
              //參數none相當於沒加這個屬性。效果是Toolbar隱藏掉後再縮小圖片
控件android.support.v4.widget.NestedScrollView
           app:layout_behavior="@string/appbar_scrolling_view_behavior"//設置NS位於ABL的下方
2.代碼:
Toolbar toolbar;
CollapsingToolbarLayout collapsingtoolbarlayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    toolbar=(Toolbar)findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);//設置標題欄默認內容。大概意思是設置到activity窗體中
    collapsingtoolbarlayout= (CollapsingToolbarLayout) findViewById(R.id.collapsingtoolbarlayout);
    collapsingtoolbarlayout.setTitle("美好的一天");
    getSupportActionBar().setHomeButtonEnabled(true);//是否使用左上角的返回button
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);//顯示返回button,是否實現返回到上一頁的效果未測

}

控件六源代碼

Design庫,所有控件的使用