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

网站开发一次性费用免费的网站推广

网站开发一次性费用,免费的网站推广,免费制作表白网页,网站备案核验系统作为一个 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.dtcms.com/wzjs/483213.html

相关文章:

  • 做网站的公司合肥seo服务如何收费
  • 做卡贴质量好的网站百度风云榜热搜
  • 哪些网站可以找到做药人的信息淘宝的关键词排名怎么查
  • 免费提供空间的网站网上营销新观察网
  • 日ip 1万 网站 值多少钱北京营销网站制作
  • 京东购物商城官网北京seo运营推广
  • 怎么创网站网络营销公司招聘
  • canva在线平面设计官网整站优化包年
  • 太原市建设交易中心网站首页品牌推广策略有哪几种
  • 最新的新开传奇网站上海优化价格
  • 做内贸的网站百度资源共享
  • 怎么看网站到期时间无锡网站建设优化公司
  • 手表网站建设规划书广告营销顾问
  • 网页设计制作毕业论文seo收费标准
  • 安徽网站建设推广网页分析工具
  • 给公司网站做seo百度快速收录办法
  • 织梦手机网站源码搜索引擎优化的简称
  • 河东做网站的公司深圳seo外包
  • 潜江官方新闻天猫seo搜索优化
  • 网站建设图片链接方法百度搜索指数的数据来源
  • 做设计网站的工作怎么样的zac博客seo
  • 自己做的网站买域名多少钱如何查询网站收录情况
  • 壁纸网站模板广州品牌营销服务
  • 网站建设犀牛电子商务seo
  • 京东的网站建设分析如何做推广引流赚钱
  • 1688成品网站源码十大搜索引擎神器
  • 光谷做网站推广哪家好长沙网站制作
  • o2o电子商务网站建设厦门seo排名优化
  • 部门网站建设的意义成都最新动态
  • 通过网站如何做海外贸易他达那非片能延时多久