Android SwipeRefreshLayout RecyclerView

戏子无情 提交于 2019-12-02 13:58:49

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的视图上。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!