我已经使用 Android 的 RecyclerView
制作了几次项目列表,但这是一个相当复杂的过程。浏览众多在线教程之一( this 、 this 和 this 都很好),但我正在寻找一个简单的示例,我可以复制和粘贴以快速启动和运行。仅需要以下功能:
- 垂直布局
- 每行有一个 TextView
- 响应点击事件
因为我多次希望这个,我最终决定在下面做出答案,以供我和你的参考。
原文由 Suragch 发布,翻译遵循 CC BY-SA 4.0 许可协议
我已经使用 Android 的 RecyclerView
制作了几次项目列表,但这是一个相当复杂的过程。浏览众多在线教程之一( this 、 this 和 this 都很好),但我正在寻找一个简单的示例,我可以复制和粘贴以快速启动和运行。仅需要以下功能:
因为我多次希望这个,我最终决定在下面做出答案,以供我和你的参考。
原文由 Suragch 发布,翻译遵循 CC BY-SA 4.0 许可协议
要开始,只需在 Recycler 视图中查看某些内容
回收器视图适配器可以是这样的。
class CustomAdapter: RecyclerView.Adapter<CustomAdapter.ViewHolder>() {
var data = listOf<String>()
set(value) {
field = value
notifyDataSetChanged()
}
override fun getItemCount() =data.size
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.txt.text= data[position]
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
return ViewHolder(
LayoutInflater.from(parent.context).inflate(R.layout.item_view, parent, false)
)
}
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView){
val txt: TextView = itemView.findViewById(R.id.item_text_view)
}
}
并将适配器附加到回收器视图并将数据附加到适配器
val view = findViewById<RecyclerView>(R.id.recycler_view)
val adapter = CustomAdapter()
val data = listOf("text1", "text2", "text3")
adapter.data = data
view.layoutManager = LinearLayoutManager(this, RecyclerView.VERTICAL, false)
view.adapter = adapter
原文由 Harsh 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答1.3k 阅读✓ 已解决
2 回答2.6k 阅读
2 回答1.7k 阅读
1 回答2.1k 阅读
1 回答1.1k 阅读
1 回答1.3k 阅读
1.3k 阅读
以下是一个类似于下图的最小示例。
从一个空的活动开始。您将执行以下任务来添加 RecyclerView。您需要做的就是复制并粘贴每个部分的代码。稍后您可以自定义它以满足您的需求。
更新 Gradle 依赖项
确保您的应用程序中有以下依赖
gradle.build
文件:您可以将版本号更新为 最新 的。如果您仍在使用 Android Studio 2.x,请使用
compile
而不是implementation
。创建活动布局
将
RecyclerView
添加到您的 xml 布局中。_activitymain.xml
创建行布局
我们的
RecyclerView
中的每一行只会有一个TextView
。创建一个新的布局资源文件。_recyclerviewrow.xml
创建适配器
RecyclerView
需要一个适配器来用您的数据填充每一行中的视图。创建一个新的 java 文件。MyRecyclerViewAdapter.java
笔记
ListViews
中可用,并且是常见的需求。如果不需要,可以删除此代码。在Activity中初始化RecyclerView
将以下代码添加到您的主要活动中。
MainActivity.java
笔记
ItemClickListener
。这允许我们在onItemClick
中处理行点击事件。完成的
而已。您现在应该能够运行您的项目并获得类似于顶部图像的内容。
继续
在行之间添加分隔线
您可以像这样添加一个简单的分隔线
如果您想要更复杂的东西,请参阅以下答案:
单击更改行颜色
有关如何更改背景颜色并在单击一行时添加波纹效果的信息,请参阅 此答案。
更新行
有关如何添加、删除和更新行的信息,请参阅 此答案。
进一步阅读