SwiperRefreshLayout
介绍
1、在坚直滑动时想要刷新页面可以用SwipeRefreshLayout来实现。它通过设置OnRefreshListener来监听界面的滑动从而实现刷新。也可以通过一些方法来设置SwipeRefreshLayout是否可以刷新。如setRefreshing(true),展开刷新动画。setRefreshing(false)取消刷新动画。setEnable(true)下拉刷新将不可用。
2、使用这个布局要想达到刷新的目的,需要在这个布局里包裹可以滑动的子控件,如ListView等,并且只能有一个控件。
主要方法
1、isRefreshing()
判断当前的状态是否是刷新状态。
2、setColorSchemeResources(int... colorResIds)
设置下拉进度条的颜色主题,参数为可变参数,并且是资源id,可以设置多种不同的颜色,每转一圈就显示一种颜色。
3、setOnRefreshListener(SwiperRefreshLayout.OnRefreshListener listener)
设置监听,需要重写onRefresh()方法,顶部下拉时会调用这个方法,在里面实现请求数据的逻辑,设置下拉进度条消失等。
4、setProgressBackgroundColorSchemeResource(int colorRes)
设置下拉进度条的背景颜色,默认白色
5、setRefreshing(boolean refreshing)
设置刷新状态,true表示正在刷新,false表示取消刷新。
RecyclerView
介绍
整体上看RecyclerView架构,提供了一种插拔式的体验,高度的解耦,异常的灵活。
可以用来代替传统的ListView,RecylerView相对于ListView的优点:
1、RecyclerView封装了viewHolder的回收复用,也就是说RecyclerView标准化ViewHolder,编写Adapter面向的是ViewHolder而不再是View。复用的逻辑被封装了,写起来更加简单。
直接省去了listview中convertView.setTag(holder)和convertView.getTag()这些繁琐的步骤。
2、提供了一种插拔式的体验,调试的解耦,异常的灵活,针对一个Item的显示RecyclerView专门抽取了相应的类,来控制Item的显示,使其扩展性非常强。
3、设置布局管理器以控制Item的布局方式,横向、竖向以及瀑布流方式。(如果想横向或纵向可以通过LinearLayoutManager,GridView效果对应的是GridLayoutManager,瀑布流对应的是StaggeredGridLayoutManager)
4、可设置Item的间隔样式(可绘制)
通过继承RecyclerView的ItemDecoration这个类,然后针对自己的业务需求去书写代码。
5、可以控制Item增删的动画,可以通过ItemAnimator这个类进行控制,当然针对增删的动画,RecyclerView有其自己默认的实现。
但是关于Item的点击和长按事件,需要用户自己去实现。
基本使用
recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
LinearLayoutManager layoutManager = new LinearLayoutManager(this );
//设置布局管理器
recyclerView.setLayoutManager(layoutManager);
//设置为垂直布局,这也是默认的
layoutManager.setOrientation(OrientationHelper. VERTICAL);
//设置Adapter
recyclerView.setAdapter(recycleAdapter);
//设置分隔线
recyclerView.addItemDecoration( new DividerGridItemDecoration(this ));
//设置增加或删除条目的动画
recyclerView.setItemAnimator( new DefaultItemAnimator());
在使用RecyclerView的时候,必须指定一个适配器Adapter和一个布局管理器LayoutManager
Adapter
首先得继承
extends RecyclerView.Adapter<RecyclerView.ViewHolder>
需要实现以下几个函数:
1、conCreateViewHolder
负责为Item创建视图。
2、onBindViewHolder
负责将数据绑定到item的视图上。
来源:CSDN
作者:chs007chs
链接:https://blog.csdn.net/CHS007chs/article/details/85094898