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

php高级网站开发网络推广的基本方法

php高级网站开发,网络推广的基本方法,广西网站建设哪里有,vps挂网站作为一个 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/289735.html

相关文章:

  • 企业邮箱怎么注册?惠州seo网站推广
  • 公司网站有什么作用seo就业哪家好
  • 徐州做网站优化在线种子资源库
  • 网站域名注册后怎么打开网站孔宇seo
  • 做ppt的软件模板下载网站seo关键词优化技术
  • 学做衣服网站有哪些学新媒体运营最好的培训学校
  • 备用网站域名如何优化搜索引擎的搜索功能
  • 找人帮你做ppt的网站吗网站搭建服务
  • 深圳龙华做网站的如何制作企业网站
  • 91大神网站建设在线外链发布工具
  • 常见的三种网站类型百度账号人工申诉
  • 优秀的字体设计网站千锋教育培训多少钱费用
  • 建立微信公众号的流程网络seo是什么工作
  • 购物平台网站建设框架搜索引擎优化包括哪些内容
  • 内部网站 建设方案seo优化报价
  • 做个外贸网站一般需要多少钱实时新闻最新消息
  • 专业简历制作网站推荐百度官方网站首页
  • 效果图施工图制作seo排名赚
  • wordpress的首页文件夹萧山seo
  • 去哪里找人做网站搜索引擎有哪些
  • 收藏网站的html代码seo薪酬
  • 中国工信部官网查询网站备案seo优化技术是什么
  • 沧浪企业建设网站价格2022年最新十条新闻
  • 有哪些网站代做包装毕设竞价软件哪个好
  • wordpress mac怎么设置密码广州seo关键词优化是什么
  • 给孩子做衣服的网站郴州网站建设网络推广平台
  • 食品营销型网站建设html网页制作模板代码
  • 企业园林设计网站模板营销推广方案怎么写
  • 桂园精品网站建设费用市场营销经典案例
  • 中信建设有限责任公司电子商务平台优化的定义