Material Design 常用控件

Material Design

Material Design 是在2014年Google I/O大会上推出的一套全新的界面设计语言。

意在解决Android平台界面风格不统一调的问题。


1.下拉刷新

SwipeRefreshLayout 用来实现下拉刷新

把要实现下拉刷新的控件放置到 SwipeRefreshLayout 中,eg:

       

            
        

刷新事件:

    private SwipeRefreshLayout swipeRefresh; //下拉刷新布局

    //下拉刷新
        swipeRefresh = (SwipeRefreshLayout) findViewById(R.id.activity_main_swipe_refresh);
        swipeRefresh.setColorSchemeResources(R.color.colorPrimaryDark); //设置进度条颜色
        swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {

                /**
                 * 更新操作
                */
              
                //当执行完更新操作后,结束刷新事件,隐藏进度条
                //一般写在加载数据方法内
                swipeRefresh.setRefreshing(false);
            }
        });

SwipeRefreshLayout 的 set Refreshing() 方法传入 false,用于表示刷新事件结束,并隐藏刷新进度条

2.Toolbar

优点:继承了ActionBar的所有功能,而且灵活性很高。

Android studio 创建的项目默认是带ActionBar的,我们需要修改 res>values>styles.xml 文件,来不使用ActionBar

注意:有些 属性不能正常显示,需要使用 app:attribute 的形式来赋值

6.悬浮按钮

FloatingActionButton 看起来有立体效果的按钮 ,


关于 layout_gravity="bottom|end" 作用,指定显示位置

关于 app:elevation="8dp" : 阴影大小

指定一个高度值,高度值越大,投影范围也越大,但是投影效果越淡,高度值越小,投影范围也越小,但是投影效果越浓。其实看起来差别也不大。

7.Snackbar

更好的提示工具-----Snackbar

首先Snackbar并不是Toast 的替代品,他们两者之间各有个的特点。

Toast更多的是提示信息,告诉用户发生了什么。

而Snackbar则扩展了更多的功能,它允许在提示当中加入一个可交互的按钮,以便执行一些额外的逻辑操作。

设想这样一个场景,当删除一条记录后,直接提示用户删除成功。当用户想要撤销,那怎么办,那这个时候就用到了Snackbar。

​ 效果图:
Material Design 常用控件_第3张图片
snackbar.gif
          Snackbar.make(view,"Data deleted!",Snackbar.LENGTH_LONG).setAction("Undo", new View.OnClickListener() {
               @Override
               public void onClick(View view) {
                    //点击Undo 后的操作
                Toast.makeText(MainActivity.this, "Data restored!", Toast.LENGTH_SHORT).show();
              }
          }).show() ;

一般都写在Button 的点击事件中; view : view指的是 onClick方法的参数

8.CoordinatorLayout

CoordinatorLayout 是一个加强版的FrameLayout,由Design Support 提供。

实现了多种Material Design中提到的滚动效果

CoordinatorLayout 会自动监听所有子控件的各种事件,然后自动帮助我们做出最为合理的相应。

eg: 只需要改变外部布局为CoordinatorLayout

Material Design 常用控件_第4张图片
coordinatorLayout.gif

注意到效果了吧,悬浮按钮自动向上偏移了Snackbar的同等高度,从而保证不会被遮挡住。当Snackbar消失时,悬浮按钮会回到原先位置。

更多请参考:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0717/3196.html



9.CardView

CardView是实现卡片式布局的重要控件,由appcompat-v7库提供。

实际上CardView也是一个FrameLayout ,知识额外提供了圆角和阴影等效果,看上去会有立体的感觉。

添加依赖引用 compile 'com.android.support:cardview-v7:25.3.1'

    

app:cardCornerRadius="4dp" 圆角弧度,数值越大哦,弧度越大

app:cardElevation="5dp" 阴影大小,数值越大,阴影越大

效果图:
Material Design 常用控件_第5张图片
cardview.png

10.TextInputLayout

使用:直接将EdieText放到 TextInputLayout 中就可以,

注意一个TextInputLayout 下只能放置一个 EditTExt


    

效果图:
Material Design 常用控件_第6张图片
TextInputLayout.gif

你可能感兴趣的:(Material Design 常用控件)