📅  最后修改于: 2023-12-03 15:15:32.529000             🧑  作者: Mango
在Android开发中,RecyclerView
是常用的控件之一,它提供了高度定制化的列表、网格等展示方式。在这篇文章中,我们将学习如何使用RecyclerView
实现横向滑动的列表展示。
要实现横向滑动的列表,我们需要改变RecyclerView
的布局方式,将其变为水平布局。同时,我们需要使用LinearLayoutManager
来控制列表的滑动方向。
首先,我们需要在build.gradle
添加RecyclerView
依赖:
dependencies {
implementation "androidx.recyclerview:recyclerview:1.1.0"
}
然后,我们定义一个MainActivity
,其中包含了一个RecyclerView
:
class MainActivity : AppCompatActivity() {
private lateinit var recyclerView: RecyclerView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
recyclerView = findViewById(R.id.recycler_view)
recyclerView.layoutManager =
LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)
val adapter = MyAdapter()
recyclerView.adapter = adapter
// 添加假数据
val list = mutableListOf<String>()
for (i in 1..20) {
list.add(i.toString())
}
adapter.setData(list)
}
}
在onCreate
方法中,我们将RecyclerView
的布局方式设置为水平方向,并将自定义的适配器MyAdapter
设置给RecyclerView
。同时,我们添加了一些假数据用于测试。
然后,我们定义一个MyAdapter
,继承自RecyclerView.Adapter
:
class MyAdapter : RecyclerView.Adapter<MyAdapter.MyViewHolder>() {
private var dataList = mutableListOf<String>()
fun setData(dataList: MutableList<String>) {
this.dataList = dataList
notifyDataSetChanged()
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.item_horizontal_recycler, parent, false)
return MyViewHolder(view)
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
holder.tvContent.text = dataList[position]
}
override fun getItemCount(): Int {
return dataList.size
}
class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val tvContent: TextView = itemView.findViewById(R.id.tv_content)
}
}
在MyAdapter
中,我们定义了一个dataList
用于存储数据,并实现了setDate
方法来设置数据。在onCreateViewHolder
方法中,我们加载了item_horizontal_recycler
布局文件,并返回MyViewHolder
。在onBindViewHolder
方法中,我们将数据显示在对应的TextView
中。在getItemCount
方法中,我们返回数据的条目数。
最后,我们定义了一个item_horizontal_recycler
布局文件:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tv_content"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_margin="5dp"
android:background="@drawable/bg_item"
android:gravity="center"
android:textColor="#fff"
android:textSize="18sp" />
在这个例子中,我们使用了一个TextView
来显示每条数据,这里的布局可以根据实际需求进行调整。
通过上述代码的实现,我们可以轻松地将RecyclerView
的布局方式改为水平布局,并完成横向滑动的列表展示。这种布局方式在横向滑动的场景中非常常用,如图片轮播、横向列表展示等。