android - RecycleView Kotlin 与 ArrayList 总是大小 = 0
问题描述
我有一个RecycleView
使用 Kotlin 的ArrayList
. 这是代码:
class TestProvider(val text: ArrayList<String> , val context:Context): RecyclerView.Adapter<TestProvider.holder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): holder {
return holder(LayoutInflater.from(context).inflate(R.layout.testitem,parent,false))
}
override fun getItemCount(): Int {
return text.size
}
override fun onBindViewHolder(holder: holder, position: Int) {
holder.txtText.text=text[position]
}
class holder(item:View): RecyclerView.ViewHolder(item) {
var txtText:TextView=item.findViewById(R.id.txtTest)
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txtTest"/>
</LinearLayout>
var task1="abdef"
internal var dateStart: Date? = null
internal var dateEnd: Date? = null
var taskProvider: Provider= Provider()
var TaskList= ArrayList<String>()
lateinit var taskAdapter: TestProvider
TaskList.add(0,task1)
TaskList.add(task1)
TaskList.add(task1)
taskAdapter = TestProvider(TaskList,this)
rcvTest.addItemDecoration(dividerItemDecoration)
rcvTest.layoutManager = linearLayoutManager
rcvTest.setHasFixedSize(true)
rcvTest.adapter = taskAdapter
taskAdapter.notifyDataSetChanged()
RecycleView
始终大小为 0的文本。
解决方案
我试图重建您的应用程序,并且体验到您的适配器似乎是错误的。请将类声明更改为:
class TestProvider(val text: ArrayList<String>, val context: Context) : RecyclerView.Adapter<TestProvider.holder>() {
此外,您的 testitem 布局的高度应该是 wrap_content,否则一个项目会占据整个屏幕
推荐阅读
- java - 如何使用命令打开聚光灯
- woocommerce - 以编程方式更改 Woocommerce 订单状态
- python-3.x - 通过 plotly 创建大型 create_distplot 时内核滞后
- javascript - 运行标准超测示例
- java - 从 POJO 创建 JsonPath 的最佳方法
- c# - 命令未从我的视图模型触发 [XAMARIN FORMS]
- css - 关键帧动画CSS的特定悬停效果
- scala - Spark将输出写入foreach批处理中的一个文件
- php - vfsStream: chown 有效,但 chgrp 无效?
- spring - 有没有办法迭代通量,查找其元素是否存在或将它们保存在数据库中?