您当前的位置: 首页 > 

蓝不蓝编程

暂无认证

  • 0浏览

    0关注

    706博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

安卓用RecyclerView实现横向滑动列表

蓝不蓝编程 发布时间:2019-08-26 10:36:52 ,浏览量:0

背景

通常我们遇到的是纵向滑动列表,但是也会有横向滑动列表.那横向的怎么做呢?

解决方案

其实很简单,绝大部分代码和纵向是一样的,只有一个设置不一样.

  1. 实现效果
  2. 关键代码
recyclerView.layoutManager = LinearLayoutManager(this, RecyclerView.HORIZONTAL, false)
  1. 完整代码 1). MainActivity.kt
class MainActivity : AppCompatActivity() {
    lateinit var adapter: RvAdapter

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        initRecyclerView()
        loadData()
    }

    private fun initRecyclerView() {
        recyclerView.layoutManager = LinearLayoutManager(this, RecyclerView.HORIZONTAL, false)
        adapter = RvAdapter()
        recyclerView.adapter = adapter
    }

    private fun loadData() {
        val data = ArrayList(100)
        for (i in 0..99) {
            data.add("text-$i")
        }
        adapter.setData(data)
    }
}

2). RvAdapter.kt

class RvAdapter : RecyclerView.Adapter() {
    private var mDataList = mutableListOf()
    private lateinit var mContext: Context
    override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
        val data = mDataList[position]
        holder.itemView.textView.text = data
        holder.itemView.setOnClickListener {
            setOnItemClickListener(data)
        }
    }

    fun setData(dataList: List) {
        mDataList.clear()
        mDataList.addAll(dataList)
        notifyDataSetChanged()
    }

    override fun getItemCount(): Int = mDataList.size

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        mContext = parent.context
        val view = LayoutInflater.from(mContext).inflate(R.layout.item_rv, parent, false)
        return ViewHolder(view)
    }

    private fun setOnItemClickListener(data: String) {
        mContext.toast(data)
    }

    class ViewHolder(itemView: View?) : RecyclerView.ViewHolder(itemView!!)

}

3). 布局文件

  • activity_main.xml



    

  • item_rv.xml



    

    

        

        

    

    

源代码

https://gitee.com/hspbc/recyclerViewDemo/tree/master/horizontalDemo

关于我

厦门大学计算机专业 | 前华为工程师 Java | 安卓 | 前端 | 小程序 | 鸿蒙 公众号:蓝不蓝编程

关注
打赏
1639405877
查看更多评论
立即登录/注册

微信扫码登录

0.0410s