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

建设网站找谁wordpress 开发网站

建设网站找谁,wordpress 开发网站,河南建设工程信息网 就上平台中项网,找网站的方法RecyclerView 是 Android 官方推荐的用于展示大量数据列表的控件#xff0c;具有高度的可定制性和灵活性。我们可以通过自定义 LayoutManager、ItemDecoration、ItemAnimator 等来实现不同的布局和动画效果#xff0c;满足各种需求。同时#xff0c;RecyclerView 支持局部刷…RecyclerView 是 Android 官方推荐的用于展示大量数据列表的控件具有高度的可定制性和灵活性。我们可以通过自定义 LayoutManager、ItemDecoration、ItemAnimator 等来实现不同的布局和动画效果满足各种需求。同时RecyclerView 支持局部刷新、数据更新等操作能够提高列表的性能和交互体验在我们工作当中使用得也非常频繁。 但最近在做性能检测的过程当中设置了多布局的 RecyclerView 在快速滑动中会有一些卡顿所以将解决方案在此文记录一下 首先需要复习一下实现 RecyclerView 的两个方法 onCreateViewHolder 和 onBindViewHolder override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {val view LayoutInflater.from(parent.context).inflate(R.layout.item_layout, parent, false)return MyViewHolder(view)} 主要是 View 的渲染工作耗时和构建 ViewHolder 并返回 override fun onBindViewHolder(holder: MyViewHolder, position: Int) {val item itemList[position]holder.bind(item)} 主要的工作是将已有的数据设置在 View 上进行显示处理 当 RecyclerView 滑动时它会根据当前屏幕上显示的 item 数量和位置进行复用已有的 ViewHolder 对象这种复用的机制可以避免频繁创建和销毁 ViewHolder 对象提高性能。 也就是说在理想和一般的情况下滑动时只调用 onBindViewHolder并不会调用 onCreateViewHolder实际上会偶发调用 但是如果设置了多布局的情况下onCreateViewHolder 就会疯狂调用因为渲染布局是在主线程中进行的所以在这种情况下快速滑动时会 在主线程大量渲染布局 从而引发卡顿 现在有两个问题① onCreateViewHolder 频繁得调用    ② 布局的渲染在主线程 解决方案① 缓存  ② 线程池 class MyAdapter : RecyclerView.AdapterMyAdapter.MyViewHolder() {private val cacheViewSize 10 // 可根据实际需求调整缓存大小private val executors Executors.newSingleThreadExecutor()private val cacheMap mutableMapOfInt, LinkedListView()override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {val layoutResId R.layout.xxx // 不同的 viewType 有不同的布局自行处理即可val cacheViewOrGenerateView getView(parent, layoutResId)return MyViewHolder(cacheViewOrGenerateView)}private fun getView(parent: ViewGroup, layoutRes: Int): View {if (cacheMap[layoutRes] null) {cacheMap[layoutRes] LinkedList()}cacheMap[layoutRes]?.let { list -if (list.isEmpty()) {viewCache(parent, layoutRes)} else {val view list.poll()if (view ! null) {viewCache(parent, layoutRes) // 拿一个补一个return view}}}return LayoutInflater.from(parent.context).inflate(layoutRes, parent, false) // 兜底处理}/*** 渲染布局至缓存直到 cacheViewSize 为止*/private fun viewCache(parent: ViewGroup, layoutRes: Int) {executors.execute {cacheMap[layoutRes]?.let { list -while (list.size cacheViewSize) {list.add(parent.getItemView(layoutRes))}}}}// ....open class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {} } 将布局的渲染放线程池里执行并设置固定缓存onCreateViewHolder 中的 View 优先从缓存中获取若没有缓存使用同步渲染作兜底处理
http://www.zqtcl.cn/news/280623/

相关文章:

  • 阿里云网站访问不了怎么办做网站二维码
  • 手机商城网站建设可采用的基本方式有
  • 网站备案管理做广告公司网站建设价格
  • 绵阳专业网站建设公司上海外贸公司排名榜
  • 如何做英文系统下载网站快速排名工具免费
  • 苏州建网站必去苏州聚尚网络网页视频提取在线工具
  • 网站建设服务市场分析百度集团
  • 网站怎么企业备案信息做网站业务员如何跟客户沟通
  • 如何网站推广知名的集团门户网站建设费用
  • 网站入口设计规范专门做喷涂设备的网站
  • 最简单网站开发软件有哪些企业管理培训课程培训机构
  • 桂城网站制作公司wordpress 导航网站
  • 一个公司做网站需要注意什么条件网站备案 登陆
  • 百度网站介绍显示图片装修公司一般多少钱一平方
  • 网站销售如何做业绩我找伟宏篷布我做的事ko家的网站
  • 建立网站有哪些步骤?jsp网站开发详细教程
  • 网站怎么做直播功能旅游做攻略用什么网站
  • 企业外贸营销型网站如何写好软文推广
  • 免费建站的网址个人网站建设程序设计
  • 淘宝网站建设违规吗上海大公司
  • 大淘客怎么自己做网站自己开网站能赚钱吗
  • 大型门户网站开发北京网站建设管庄
  • 大连建设工程网站网站建设组织管理怎么写
  • wordpress英文站注册域名需要注意什么
  • 营销型网站的建设重点是什么深圳logo设计公司排名
  • 做网站的用什么软件呢网站排名优化服务公司
  • 网站开发完整视频网站集约化建设较好的城市
  • 网站建设和平面设计应用网站如何做
  • 自己做网站需要多少费用asa8.4 做网站映射
  • 商业网站 模板黑龙江省建设厅安全员考试