欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

《Android进阶之光》--Material Design

程序员文章站 2022-04-16 08:29:03
接上篇《Android进阶之光》--Android新特性 No1: 组件: 1)底部工作条-Bottom Sheets 2)卡片-Cards 3)提示框-Dialogs 4)菜单-Menus 5)选择器 6)滑块控件-Sliders 7)进度和动态 8)Snackbar(底部可操作弹出框)与Toas ......

接上篇《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进阶之光》--Material Design

<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"即可