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

ps模板网站推荐罗湖商城网站设计价格

ps模板网站推荐,罗湖商城网站设计价格,品牌网站建设优化公司排名,微平台推广多少钱一、RecyclerView的优势 RecyclerView 的最大优势在于#xff0c;它对大型列表来说非常高效#xff1a; 默认情况下#xff0c;RecyclerView 仅会处理或绘制当前显示在屏幕上的项。例如#xff0c;如果您的列表包含一千个元素#xff0c;但只有 10 个元素可见#xff0…一、RecyclerView的优势 RecyclerView 的最大优势在于它对大型列表来说非常高效 默认情况下RecyclerView 仅会处理或绘制当前显示在屏幕上的项。例如如果您的列表包含一千个元素但只有 10 个元素可见那么 RecyclerView 仅会完成在屏幕上绘制这 10 个项的工作。当用户滚动时RecyclerView 会确定应在屏幕上显示哪些新项然后仅完成显示这些项的工作。当某个项滚动出屏幕时RecyclerView 会回收其视图。也就是说这个项中会填充滚动到屏幕上的新内容。RecyclerView 的这种行为可以节省大量处理时间并能让列表顺畅地滚动。当某个项发生变化时RecyclerView 无需重新绘制整个列表即可更新该项。在显示包含复杂项的长列表时这可以极大地提高效率 二、RecyclerView中显示数据的步骤 如需在 RecyclerView 中显示您的数据您需要以下几个部分 要显示的数据。即列表项中要显示的内容。在布局文件中定义的一个 RecyclerView 实例用作视图的容器。RecyclerView包含与您的数据对应的视图的 ViewGroup它本身是一个视图因此将 RecyclerView 添加到布局中的方式与添加任何其他界面元素相同。一个数据项的布局。如果所有列表项看起来都一样您可以对所有这些列表项使用相同的布局但这不是强制性要求。项布局必须与 fragment 的布局分开创建以便一次创建一个项视图并在其中填充数据。一个布局管理器。布局管理器负责排列列表中的各个元素。您可以使用 RecyclerView 库提供的某个布局管理器也可以定义自己的布局管理器。布局管理器均基于库的 LayoutManager 抽象类。一个 ViewHolder。该 ViewHolder 用于扩展 ViewHolder 类。它包含视图信息用于显示项布局中的一项。ViewHolder 还会添加一些信息供 RecyclerView 用于在屏幕上高效移动视图。可以通过扩展 RecyclerView.ViewHolder 来定义 ViewHolder。一个适配器。该适配器可将您的数据与 RecyclerView 相关联。它会调整数据使其可在 ViewHolder 中显示。RecyclerView 会使用适配器确定如何在屏幕上显示数据。可以通过扩展 RecyclerView.Adapter 来定义 Adapter。 三、实现RecyclerView 1. 添加依赖项 在模块的 build.gradle 中添加 RecyclerView 的依赖项 implementation(androidx.recyclerview:recyclerview:1.3.2)2. 准备要显示的数据 本例只是演示 RecyclerView 的用法故只简单显示颜色列表数据项中只需定义一个 TextView 来显示颜色即可。实际项目中需根据需求定义相应的数据类来保存列表项内容。 val listData arrayOf(yellow, red, blue)3. 在 xml 中添加RecyclerView组件 布局 recyclerview_main.xml androidx.recyclerview.widget.RecyclerViewandroid:idid/recyclerviewandroid:layout_widthfill_parentandroid:layout_heightwrap_content /4. 创建 列表项布局 本例中 RecyclerView 显示了一个简单的文本元素列表每个视图项的布局在xml中定义recyclerview_item.xml 布局如下 ?xml version1.0 encodingutf-8? FrameLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_height40dpTextViewandroid:idid/tv_textandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:textstring/element_textandroid:gravitycenter_vertical//FrameLayout5. 选择布局管理器 RecyclerView 中的列表项由 LayoutManager 类负责排列。RecyclerView 库提供了三种布局管理器用于处理最常见的布局情况 LinearLayoutManager 将各个项排列在一维列表中。GridLayoutManager 将项排列在二维网格中 如果网格垂直排列GridLayoutManager 会尽量使每行中所有元素的宽度和高度相同但不同的行可以有不同的高度。 - 如果网格水平排列GridLayoutManager 会尽量使每列中所有元素的宽度和高度相同但不同的列可以有不同的宽度。 StaggeredGridLayoutManager 与 GridLayoutManager 类似但不要求同一行中的表项具有相同的高度垂直网格有此要求或同一列中的列表项具有相同的宽度水平网格有此要求。其结果是同一行或同一列中的列表项可能会错落不齐。 6. 实现ViewHolder和适配器Adapter ViewHolder 是包含列表中各列表项的布局的 View 的封装容器。Adapter 会根据需要创建 ViewHolder 对象还会为这些视图设置数据。将视图与其数据相关联的过程称为“绑定”。这两个类配合使用共同定义数据的显示方式。 定义适配器时您需要替换三个关键方法 onCreateViewHolder()每当 RecyclerView 需要创建新的 ViewHolder 时它都会调用此方法。此方法会创建并初始化 ViewHolder 及其关联的 View但不会填充视图的内容因为 ViewHolder 此时尚未绑定到具体数据。onBindViewHolder()RecyclerView 调用此方法将 ViewHolder 与数据相关联。此方法会提取适当的数据并使用该数据填充 ViewHolder 的布局。例如如果 RecyclerView 显示的是一个名称列表该方法可能会在列表中查找适当的名称并填充 ViewHolder 的 TextView widget。getItemCount()RecyclerView 调用此方法来获取数据集的大小。例如在通讯簿应用中这可能是地址总数。RecyclerView 使用此方法来确定什么时候没有更多的列表项可以显示。 下面是一个典型的简单 Adapter 示例该 Adapter 包含一个显示数据列表的嵌套 ViewHolder。在本例中RecyclerView 显示了一个简单的文本元素列表。系统会向 Adapter 传递一个字符串数组该数组包含了 ViewHolder 元素的文本。 package com.android.jetpack.recyclerviewimport android.view.LayoutInflaterimport android.view.Viewimport android.view.ViewGroupimport android.widget.TextViewimport androidx.recyclerview.widget.RecyclerViewimport com.android.jetpack.Rclass CustomAdapter(private val dataSet: ArrayString): RecyclerView.AdapterCustomAdapter.ViewHolder() {// 列表项视图容器class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {// 列表项内控件val textview: TextViewinit {textview view.findViewById(R.id.tv_text)}}override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {val view LayoutInflater.from(parent.context).inflate(R.layout.recyclerview_item, parent, false)return ViewHolder(view)}override fun getItemCount(): Int {return dataSet.size}override fun onBindViewHolder(holder: ViewHolder, position: Int) {holder.textview.text dataSet[position]}}7. 使用RecyclerView 在 RecyclerViewActivity 中使用 RecyclerView 的代码 package com.android.jetpack.recyclerviewimport android.os.Bundleimport android.os.PersistableBundleimport androidx.activity.ComponentActivityimport androidx.recyclerview.widget.LinearLayoutManagerimport com.android.jetpack.databinding.RecyclerviewMainBindingclass RecyclerViewActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {super.onCreate(savedInstanceState, persistentState)val binding RecyclerviewMainBinding.inflate(layoutInflater)setContentView(binding.root)val listData arrayOf(yellow, red, blue)val adapter CustomAdapter(listData)binding.recyclerview.adapter adapterbinding.recyclerview.layoutManager LinearLayoutManager(this)}}参考文档 https://developer.android.google.cn/codelabs/kotlin-android-training-recyclerview-fundamentals https://developer.android.google.cn/develop/ui/views/layout/recyclerview?hlzh_cn
http://www.hkea.cn/news/14336327/

相关文章:

  • 个人主页网站申请中小型网站有哪些
  • 门户网站中综合性程度高的是广告联盟挂机
  • 高新手机网站建设公司图片识别搜索引擎
  • 惠州 网站建设app开发抖音代运营可以相信吗
  • 如何搭建公司内部网站12306网站建设投标书
  • 网页制作与网站建设实战大全 光盘网站建设中html中关于图片显示的标签有哪些
  • 有哪些做的好的小众网站建设网站推销
  • 网站建设教程论坛wordpress小工具不见了
  • 网站运营培训学校德网站建设
  • oa网站建设推广asp.net mvc做网站
  • 四川网站营销seo什么价格广州微网站建设哪家好
  • 12306网站 花了多少钱建设群辉 wordpress套件
  • 网站访问量免费下ppt课件的网站
  • 建外贸网站哪个好网站建设及推广好学习吗
  • ip开源网站FPGA可以做点什么营销型网站建设公司提供网站建设
  • 基础型网站套餐中国外包公司
  • wordpress 站点群网站开发语言哪一种好些
  • 网站建设目的定位构建自己最出色的wordpress主题
  • 小米手机官方网站免费的舆情网站不需下载
  • 购物网站app推广方案淘宝客网站做app
  • 网站查询域名如何提高wordpress后台的访问速度
  • 电商网站建设 问题与解决方案阜宁网站建设服务商
  • 百度新闻源网站有哪些qq群短链接生成
  • 关于推进公司网站开发的请示做淘宝客网站会犯法吗
  • 网站建设客户常见问题多媒体展厅公司
  • 柳州城乡建设管理局网站网络营销有哪些营销方式
  • 网站技术解决方案是什么红色系 网站
  • 电商设计网站有哪些功能下载网站模板
  • 如何做带后台的网站拼多多网站怎么做的
  • 网站备案下来以后怎么做网页南京软件网站建设公司