当前位置: 首页 > news >正文

有趣的网站名/最厉害的搜索引擎

有趣的网站名,最厉害的搜索引擎,企业邮箱是什么?,构建企业网站作为一个 Android 开发,RecycleView 是经常使用的,因为原生实现 RecycleView 比较繁琐,所以我们通常会借助第三方开源框架来加速开发,最常用的就是 BaseRecyclerViewAdapterHelper 了 https://github.com/CymChad/BaseRecyclerVi…

作为一个 Android 开发,RecycleView 是经常使用的,因为原生实现 RecycleView 比较繁琐,所以我们通常会借助第三方开源框架来加速开发,最常用的就是 BaseRecyclerViewAdapterHelper 了

https://github.com/CymChad/BaseRecyclerViewAdapterHelperhttps://github.com/CymChad/BaseRecyclerViewAdapterHelper

implementation "io.github.cymchad:BaseRecyclerViewAdapterHelper4:4.1.6"

 文档中的使用示例:

 优化后的用法:

class TestAdapter : BaseQuickAdapter<DataBean, TestAdapter.VH>() {override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH {val binding = LayoutBinding.inflate(LayoutInflater.from(parent.context))return VH(binding)}override fun onBindViewHolder(holder: VH, position: Int, item: DataBean?) {item ?: return// 设置 item 数据holder.binding.xxxx}class VH(val binding: LayoutBinding) : BaseViewHolder(binding.root)
}

可以看到使用 BaseQuickAdapter 来开发已经非常方便了,但是还可以封装一下:

使用 ViewBinding 的情况下,在 Adapter 中只需要关注两样事情:list 数据的类型,item 布局的数据绑定

所以 onCreateViewHolder 方法和 VH 类可以通过泛型提取出来,并且把 ViewBinding 暴露出去


abstract class KQuickAdapter<T : Any, VB : ViewBinding> : BaseQuickAdapter<T, VH<VB>>() {override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH<VB> {val vbClass = (javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[1] as Class<VB>val method = vbClass.getMethod("inflate", LayoutInflater::class.java, ViewGroup::class.java, Boolean::class.java)val binding = method.invoke(null, LayoutInflater.from(context), parent, false) as VBreturn VH(binding)}override fun onBindViewHolder(holder: VH<VB>, position: Int, item: T?) {item ?: returnonBind(holder.binding, position, item)}abstract fun onBind(binding: VB, position: Int, item: T)
}
class VH<VB : ViewBinding>(val binding: VB) : RecyclerView.ViewHolder(binding.root)

使用方法:

class TestAdapter: KQuickAdapter<DataBean, LayoutBinding>() {override fun onBind(binding: LayoutBinding, position: Int, item: DataBean) {// 设置 item 数据binding.xxxxx}
}

可以看到只需要传 list 的数据类型和 item 的ViewBinding 类型,在 onBind 方法中设置 item 数据就完整了 Adapter 的配置,减少了 onCreateViewHolder 方法和 VH 类的模板代码,进一步提升开发效率


注:KQuickAdapter 中的 onCreateViewHolder 方法使用了反射来获取子类的泛型类型,相对来说会有点耗时,但是可以把反射的结果缓存起来,避免 onCreateViewHolder 方法多次执行时的重复反射操作,将反射带来的性能影响降到最低

http://www.cadmedia.cn/news/581.html

相关文章:

  • 为什么有的网站点不开/安卓排名优化
  • 做网站较好的框架/我要安装百度
  • dw做的网站/百度快照优化的优势是什么
  • 什么样的网站可以做站内站/新手怎么做销售
  • wordpress拖拽式建站主题/电商培训心得
  • 承德网站建设电话/网站推广技巧
  • 做征婚网站/郴州网站seo外包
  • 连云港网站建设bw263/资阳市网站seo
  • 温州做模具的网站/如何做好网站的推广工作
  • 做网站多少钱角西宁君博特惠/seo属于运营还是技术
  • 手机网站关于我们/最近韩国电影片
  • 网站发布方式有哪些/网络运营具体做什么
  • 网站开发需要英语/品牌网络营销案例
  • 做网站用什么国外的空间比较好/站长工具无忧
  • 专门用来制作网页的软件是什么/seo建站收费地震
  • 可以做游戏的网站有哪些方面/厦门seo排名外包
  • 大气dede织梦企业广告网络公司工作室网站模板源码/网站开发软件
  • 网站后台管理的超链接怎么做/网址搜索引擎
  • 整站优化和关键词优化的区别/百度营销推广官网
  • 内网进销存软件终身免费版/武汉seo排名公司
  • 东莞响应式网站哪里好/广州seo黑帽培训
  • 合肥企业建站系统/北京网站优化指导
  • 做网站 先上线再调整/郑州网络营销公司哪个好
  • 长沙网站免费建站/手机搜索引擎排行榜
  • 光谷软件园网站建设/免费网站推广软件
  • 旅游去过的地方可做标识网站/重庆seo排名
  • 网站banner图尺寸是多少/合肥seo推广排名
  • 企业级网站开发与部署/深圳互联网公司50强
  • 网站专题制作原则/电子商务沙盘seo关键词
  • 信用网站建设成效/网络营销策划书包括哪些内容