RecyclerView 加载不用同的itme 布局 ---并且不会复用

8 篇文章 0 订阅
2 篇文章 0 订阅

RecyclerView 我也是在很多网站找了但是很多都是说复用而不是itme 重复加载
这里写图片描述
这是效果图帅吧!其实是模仿那懒人听书的 帅吧

第一步当当然是先重写最外层的管理器 ,才能完整加载展现itme 的布局
这里写图片描述

这其实也没有什么说的用着个主要方便 在这里说明一下这是干嘛的
接下来是初始化RecyclerView 和一些准备工作

**这里面这一句可以选着自己需要的布局管理器来
MyStaggerGrildLayoutManger layoutManager ;
layoutManager = new MyStaggerGrildLayoutManger(this,1,StaggeredGridLayoutManager.VERTICAL);
我这里使用自定义的流布局
这个是必须是设置一个管理器不然布局就算添加了也没有用的
我这里写的 传进到adapter 适配器中的ArraList()是装view的不是数据**

如果有要更新数据的 就要在adapter 写个接口在activity 中回调adapter 的方法

这里写图片描述

view hodler 是初始化控件的 理论上要一个itme 写一个 Viewhodler 来管理各自的布局中的控件 如果布局都一样完全不必要 只需要一个就行 ,我们这里 是因为每个itme 都不同布局 所以需要 才会建议你们写多几个

这里写图片描述

* 这下面一张图是设置有几个itme的 直接返回 postition 才不会出现 itme 重复加载的情况 *

这里写图片描述

* 这里就是返回布局 我传进来的布局 一定要 排好 下代码 遍历Viewlist 集合长度 依次返回就行了 到这里基本布局都是可以显示了 点击事件 上面也说了在 申明 *
这里写图片描述

在此我觉得第一次写这些 这种类型博客,写的不是很好见谅 下面我分享 两个下载地址 第一个是我同事写的 ,一个是我写的 ,我和我同事写的思路不一样但效果是一样的 这现在这个展示是没有 下拉刷新 但有刷新demo我没有上传 哎 … 有什么不足请留言或者 加QQ1115973144 跟我说,技术这门要多交流的


这是我当前介绍的demo 源码 下载

这是我自己写的 思路不同但效果是相同的 源码下载

要在RecyclerView上显示项目,您需要执行以下操作: 1. 创建一个适配器类来管理和显示数据。适配器类必须继承RecyclerView.Adapter类并实现三个方法:onCreateViewHolder()、onBindViewHolder()和getItemCount()。onCreateViewHolder()方法负责创建视图持有者ViewHolder,onBindViewHolder()方法负责绑定数据到ViewHolder,getItemCount()方法返回数据源中项目的数量。 2. 创建一个布局文件来定义RecyclerView项目的外观。此布局将用作RecyclerView.Adapter的参数之一。 3. 在主活动(Activity)中实例化RecyclerView,并将其与适配器和数据源连接。您需要提供一个布局管理器(LayoutManager)来指定RecyclerView项目的排列方式。 以下是一个简单的示例: 1. 创建适配器类 ``` class MyAdapter(private val items: List<String>) : RecyclerView.Adapter<MyAdapter.ViewHolder>() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val view = LayoutInflater.from(parent.context).inflate(R.layout.my_item_layout, parent, false) return ViewHolder(view) } override fun onBindViewHolder(holder: ViewHolder, position: Int) { holder.textView.text = items[position] } override fun getItemCount(): Int { return items.size } class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { val textView: TextView = itemView.findViewById(R.id.my_text_view) } } ``` 2. 创建布局文件 my_item_layout.xml: ``` <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="16dp"> <TextView android:id="@+id/my_text_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="18sp" /> </LinearLayout> ``` 3. 在主活动中实例化RecyclerView MainActivity.kt: ``` class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val items = listOf("Item 1", "Item 2", "Item 3") val adapter = MyAdapter(items) val layoutManager = LinearLayoutManager(this) recycler_view.adapter = adapter recycler_view.layoutManager = layoutManager } } ``` activity_main.xml: ``` <androidx.recyclerview.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 这将在RecyclerView上显示三个项目,每个项目都由my_item_layout.xml定义的布局文件呈现。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值