天天看點

android.進階之光線上閱讀,《Android進階之光》--Material Design

No1:

元件:

1)底部工作條-Bottom Sheets

2)卡片-Cards

3)提示框-Dialogs

4)菜單-Menus

5)選擇器

6)滑塊控件-Sliders

7)進度和動态

8)Snackbar(底部可操作彈出框)與Toast

9)Tab

No2:

Snackbar

包含了文字資訊和一個可選的操作按鈕

Snackbar.make(activity_main,"标題",Snackbar.LENGTH_LONG)

.setAction("點選事件",new View.OnClickListener(){

@Override

public void onClick(View v){

Toast.makeText(

MainActivity.this,

"Toast",

Toast.LENGTH_LONG).show();

}

}).setDuration(Snackbar.LENGTH_LONG).show();

make第一個參數是View類型的參數,是Snackbar的父控件

No3:

TextInputLayout輸入框容器(hint上浮,錯誤提示下方顯示)

效果圖

android.進階之光線上閱讀,《Android進階之光》--Material Design

android:id="@+id/t1_username"

android:layout_width="match_parent"

android:layout_height="warp_content"

android:layout_centerInParent="true">

android:id="@+id/et_username"

android:layout_width="match_parent"

android:layout_height="warp_content"

android:hint="username"

android:maxLength="25"

android:maxLines="1"/>

private void login(){

String username = t1_username.getEditText().getText().toString();

String password = t1_password.getEditText().getText().toString();

if(!validateUserName(username)){

t1_username.setErrorEnabled(true);

t1_username.setError("請輸入正确的郵箱位址");

}else if(!validatePassword(password)){

t1_password.setErrorEnabled(true);

t1_password.setError("密碼數字過少");

}else{

t1_username.setErrorEnabled(false);

t1_password.setErrorEnabled(false);

Toast.makeText(getApplicationContext(),"登陸成功",Toast.LENGTH_SHORT).show();

}

}

No4:

自定義Bahavior

CoordinatorLayout中最經典的設計就是Bahavior,app:layout_behavior="@string/appbar_scrolling_view_behavior"的值對應着的是AppBarLayout.ScrollingViewBehavior。

自定義Behavior分兩種方法:

1)定義的View監聽CoordinatorLayout裡的滑動狀态。注意重寫onStartNestedScroll()和onNestedPreScroll()方法

2)定義的View監聽另一個View的狀态變化。注意重寫layoutDependsOn()和onDependentViewChanged()方法

然後在關聯的布局中加入

app:layout_behavior="com.example.liuwangshu.mooncoordinatorlayout.FooterBehavior"即可