一、内容概要
在一个完整的项目中,可能有非常多的列表页,有的经常是十几十个,但是列表的大部分内容都一样。 例如,布局相同,模板适配器相同,刷新控件相同等。 此时,逐个写入模板代码看起来工作量有点重复。 定义子类使用的公共列表刷新模板,以使代码看起来更简单,更易于维护。 这样,子类只需要集成这个通用的基类,就可以非常迅速地实现刷新列表,从而大幅减少实际的编码量。 让我们来看看具体该怎么办。
基本类代码
二、实战部分
/**
* *具有更新功能的基类。 子类继承后,将自动形成更新功能
* create by在意的铅笔
* on 2020/7/23 16:40
*/
abstractclassbaselistrefreshactivityp : base presenter *,* : BaseMvpActivityP (
//*
适配器的定义
*/
私有虚拟机适配器3360接收器视图.适配器*?=空值
//*
* *设置刷新基类的布局
*/
override fun getLayoutId () :英寸
returnr.layout.base _刷新_布局
}
//*
* *初始化页面数据
*/
复盖功能单元视图(
getRecycleView ().layoutManager=getLayoutManager ) ) ) )。
getRefreshLayout ().setonrefreshloadmorelistener (创建者) )
适配器=创建适配器(
getRecycleView () .适配器=适配器
}
//*
* *刷新停止
*/
fun停止刷新()
ptrl_list.finishLoadMore (
ptrl _ list.finish刷新(
}
//*
* *获取刷新布局
*/
fun getRefreshLayout () : SmartRefreshLayout {
返回路径列表
}
//*
获得回收视图
*/
fun getRecycleView () :接收器视图{
返回回收视图
}
//*
获取适配器
*/
fungetadapter (:接收器视图.适配器*? {
返回适配器
}
//*
* *创建刷新侦听器
*/
abstractfuncreaterefreshlistener () : OnRefreshLoadMoreListener
//*
* *获取布局管理器
*/
abstract fun getLayoutManager () :接收器视图.布局管理器
//*
* * *推迟在子类中创建适配器
*/
abstract fun创建适配器() :接收器视图.适配器*
}
三、注意点
的实现非常简单。 首先定义抽象的BaseListRefreshActivity,然后创建抽象的adapter、抽象的侦听器和抽象的LayoutManager,并在initViews ()中初始化这些方法。 在子类中,只需实现这些抽象方法,就可以快速实现具有上载和下载刷新的RecycleView。
虽然是很简单的实现方法,但是很实用。 大家可以把它放在自己的base_sdk里,做输出项目,做公司自己的项目。
四、结束
简单的实施到此结束。 快动手看看吧。 让我们看看是否比开始写模板代码块多