RecyclerView实现的横向滑动的列表的关键代码
mBinding.recyclerView.layoutManager=LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false)
adapter结合viewbing实现更加简洁清晰
class MyAdapter(private val dataList:List<String>): RecyclerView.Adapter<MyAdapter.MyViewHolder>(){
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val binding=ItemTagBinding.inflate(LayoutInflater.from(parent.context))
return MyViewHolder(binding)
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
holder.binding.btnItem.text=dataList[position]
}
override fun getItemCount()=dataList.size
class MyViewHolder( val binding: ItemTagBinding):RecyclerView.ViewHolder(binding.root)
}
Activity部分
class MainActivity : AppCompatActivity() {
private lateinit var mBinding:ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mBinding= ActivityMainBinding.inflate(layoutInflater)
setContentView(mBinding.root)
val list= listOf("Java","Kotlin","C/C++","Python","HTML","Javascript")
mBinding.recyclerView.layoutManager= LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false)
mBinding.recyclerView.adapter=MyAdapter(list)
}
}
要使用ViewBinding还需要在build.gradle中加上
buildFeatures {
viewBinding true
}