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

莱芜网站建设排行企业网站数防泄露怎么做

莱芜网站建设排行,企业网站数防泄露怎么做,工作箴言,具有营销型网站有哪些掌握 Android 中的 RecyclerView 优化 一、RecyclerView Pool以及何时使用它二、onCreateViewHolder 和 onBindViewHolder三、优化 RecyclerView 的不同方法四、视图无效与请求布局五、ViewHolder模式六、默认的废料和脏视图类型七、结论 RecyclerView 是 Android 中一个功能强… 掌握 Android 中的 RecyclerView 优化 一、RecyclerView Pool以及何时使用它二、onCreateViewHolder 和 onBindViewHolder三、优化 RecyclerView 的不同方法四、视图无效与请求布局五、ViewHolder模式六、默认的废料和脏视图类型七、结论 RecyclerView 是 Android 中一个功能强大的小部件用于高效显示大型列表或数据网格。为了确保应用程序的性能和响应能力优化 RecyclerView 实现至关重要。这里我们将探讨各种技术和概念帮助充分利用 RecyclerView。 一、RecyclerView Pool以及何时使用它 RecyclerView Pool 是一种帮助管理 RecyclerView 中视图的内存和性能的机制。它本质上是一个缓存用于保存当前在屏幕上不可见但在不久的将来可能再次需要的视图。这显着减少了每次新项目进入可见区域时膨胀新视图的开销。 何时使用 RecyclerView Pool 处理大型列表或数据网格时使用它。当列表中的项目具有不同的视图类型时请选择 RecyclerView Pool。 二、onCreateViewHolder 和 onBindViewHolder 在RecyclerView中onCreateViewHolder和onBindViewHolder是适配器中必不可少的方法。它们共同为列表中的每个项目创建和绑定视图。 onCreateViewHolder在需要创建新视图时被调用。它负责扩展布局并创建 ViewHolder 实例。当现有视图被新项目重用时将调用onBindViewHolder 。它将数据绑定到视图持有者允许您更新视图的内容。onBindViewHolder不应该用于绑定点击侦听器我们应该注意我们在其中执行的匿名对象或任务。仔细阅读下面的代码然后我会解释为什么 class MyAdapter ( private val items: ListItem) : RecyclerView.AdapterMyAdapter.ViewHolder() { inside class ViewHolder (itemView: View) : RecyclerView.ViewHolder(itemView) { init { itemView.setOnClickListener { // 处理项目click here val position adapterPosition if (position ! RecyclerView.NO_POSITION) { val clickedItem items[position] // 处理 clickedItem 的点击事件} } } } override fun onCreateViewHolder (parent: ViewGroup , viewType: Int ) : ViewHolder { val view LayoutInflater.from(parent.context).inflate(R.layout.item_layout, Parent, false ) return ViewHolder(view) } override fun onBindViewHolder (holder: ViewHolder ,position: Int ) { val currentItem items[position] / / 此处将数据绑定到视图持有者} override fun getItemCount () items.size }在onBindViewHolder中为每个项目单独生成单击侦听器从而导致多个侦听器实例。通过将点击监听器放置在 中ViewHolder它们在 ViewHolder 创建时就形成了由于 ViewHolder 的可重用性提高了内存效率。 三、优化 RecyclerView 的不同方法 使用图像库 处理图像时建议使用提供位图池的图像库。这可以防止过多的内存使用和频繁的垃圾收集。 Glide.with( this ) .load(imageUrl) .placeholder(R.drawable.placeholder_image) .error(R.drawable.error_icon) .into(imageView)优化图像尺寸从服务器获取图像尺寸和宽高比以避免不必要的调整大小和缩放。setHasStableIds此方法应用于setHasStableIds(true)启用稳定的项目 ID。这有助于有效地更新和重新排序项目而无需不必要的重新绑定。 class MyAdapter ( private val itemList: ListItem) : RecyclerView.AdapterMyAdapter.ViewHolder() { init { setHasStableIds( true ) // 为此适配器启用稳定 ID} //....}setHasFixedSize如果RecyclerView大小本身是固定的并且不会因其内容而改变则使用它setHasFixedSize(true)可以通过避免不必要的布局计算来帮助提高性能。 val recyclerView findViewByIdRecyclerView(R.id.recyclerView) recyclerView.setHasFixedSize( true ) // 为 RecyclerView 启用固定大小setItemViewCacheSize使用此方法调整缓存大小以控制保留多少个离屏视图。这可以帮助管理内存使用。 val recyclerView findViewByIdRecyclerView(R.id.recyclerView) recyclerView.setItemViewCacheSize( 10 ) // 根据项目大小将视图缓存大小设置为自定义值四、视图无效与请求布局 Invalidate用于指示视图的内容已更改并且需要重新绘制。requestLayout用于请求新的布局通道影响视图的大小和位置。 您可能想知道为什么我突然谈论invalidate与requestLayout。让我解释。 我讨论了“无效”与“请求布局”以说明它们如何影响视图的生命周期。这会影响屏幕重绘时间过多的布局和绘制阶段会降低性能。要优化 Android 页面尤其是 RecyclerView彻底掌握视图生命周期至关重要。 让我用一个例子来进一步解释一下 当 TextView 的 wrap_content 与 100dp 固定时将或应该调用什么invalidate 或 requestLayout 回答 当 TextView 的宽度设置为 时wrap_content调用requestLayout()会更合适。这是因为这requestLayout()表明视图层次结构需要重新测量和布局以确保内容正确地适合边界。 当 TextView 的宽度固定时例如设置为特定值如100dp调用invalidate()通常就足够了。它通知系统视图的内容已更改并且需要在现有布局范围内重新绘制。这可以避免在更新视图外观时进行不必要的重新布局计算。 五、ViewHolder模式 ViewHolder 模式是一种设计模式它通过最大限度地减少对 .recyclerview 的调用次数来增强 recyclerview 的性能findViewById()。它涉及创建一个 ViewHolder 类该类保存对项目布局中视图的引用。这允许在用户滚动列表时有效地重用视图。有关 ViewHolder 模式的综合示例请查看此链接。 六、默认的废料和脏视图类型 在RecyclerView中每种视图类型的废视图和脏视图的默认计数设置为 5。对于标题等仅 1 或 2 个剪贴视图就足够的情况此通用编号可能不是最佳选择。废料视图是可重用的、分离的视图可以轻松地重新附加。 为了提高内存效率您可以根据每个特定视图类型的流行程度自定义池大小从而定制剪贴视图行为。这种方法通过有效管理RecyclerView中不同类型项目的剪贴视图数量确保优化内存使用。 val customRecycledViewPool RecyclerView.RecycledViewPool().apply { setMaxRecycledViews(viewType, poolSize) // 设置自定义 viewType 和 poolSize}七、结论 优化 RecyclerView 实施对于保持流畅且响应迅速的用户体验至关重要。通过理解 RecyclerView Pool 和 ViewHolder 模式等概念并优化视图创建和绑定您可以确保您的应用程序有效地处理大量数据。 请记住每种优化技术都有特定的目的并且应用这些技术的组合可以显着提高 RecyclerView 的性能。
http://www.w-s-a.com/news/19662/

相关文章:

  • 万维网网站个人申请网站
  • 我想做网站怎么做昆山网站建设 全是乱码
  • 单位做网站怎么做圣诞树html网页代码
  • 网页开发与网站开发企业网站托管服务常用指南
  • 一站式服务图片临沂做进销存网站
  • 鸣蝉智能建站标准物质网站建设模板
  • 电商网站建设技术员的工作职责商业网站制作价格
  • 网站html模板免费下载公司的网站建设费用入什么科目
  • 高中生做网站网页网页制作教程零基础学会
  • 做金融网站有哪些要求WordPress站内搜索代码
  • 济南网站怎么做seowordpress注册发邮件
  • 珠海网站设计平台东莞市手机网站建设平台
  • 网站开发文档合同怎么在wordpress导航条下方加入文字广告链接
  • 网站建设需怎么做有网站怎么做企业邮箱
  • 网站制作流程视频教程小程序多少钱一年
  • 暗网是什么网站花都网站建设哪家好
  • 贵州网站开发流程晋江论坛手机版
  • 网站建设丿金手指谷哥14阿里巴巴官网电脑版
  • 网站开发招聘信息匿名ip访问网站受限
  • 网站转app工具网站规划建设与管理维护大作业
  • flash是怎么做网站的.net购物网站开发
  • 烟台网站建设求职简历品质商城网站建设
  • 做百度外链哪些网站权重高点做网站具备的条件
  • 怎么样用ppt做网站红番茄 网站点评
  • 建设银行河北分行招聘网站哪里能找到网站
  • 兰州营销型网站网站建设收费标准
  • 网站首页动图怎么做自己做网站很难
  • 自建网站如何盈利推广引流最快的方法
  • 网页设计网站结构图怎么弄网站用户 分析
  • 企业手机网站建设策划天津网页设计工作