《Android進階之光》--Material Design


接上篇《Android進階之光》--Android新特性

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.support.design.widget.TextInputLayout
    android:id="@+id/t1_username"
    android:layout_width="match_parent"
    android:layout_height="warp_content"
    android:layout_centerInParent="true">
    <EditText
        android:id="@+id/et_username"
        android:layout_width="match_parent"
        android:layout_height="warp_content"
        android:hint="username"
        android:maxLength="25"
        android:maxLines="1"/>
</android.support.design.widget.TextInputLayout>
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"即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM