Android开发教程类似淘宝首页标签滑动效果

82 阅读1分钟
Android开发教程类似淘宝首页标签滑动效果

滑动RecycleView,底部的进度条跟着滑动。

一、思路:

自定义HIndicator,横向滑动的指示器,做了基于recyclerView的联动[bindRecyclerView],其余的需要自己适配

二、效果图:

在这里插入图片描述

三、关键代码:
class MainActivity : AppCompatActivity() {
    lateinit var context: Context
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val rv_labels = findViewById<RecyclerView>(R.id.rv_labels)
        val hIndicator = findViewById<HIndicator>(R.id.hIndicator)
        hIndicator.bindRecyclerView(rv_labels)

        context = this

        val datas = mutableListOf<CateData>()
        datas.add(CateData(R.mipmap.icon1,"新品"))
        datas.add(CateData(R.mipmap.icon2,"爆款"))
        datas.add(CateData(R.mipmap.icon3,"农场"))
        datas.add(CateData(R.mipmap.icon4,"旅行"))
        datas.add(CateData(R.mipmap.icon5,"超市"))

        datas.add(CateData(R.mipmap.icon1,"新品1"))
        datas.add(CateData(R.mipmap.icon2,"爆款1"))
        datas.add(CateData(R.mipmap.icon3,"农场1"))
        datas.add(CateData(R.mipmap.icon4,"旅行1"))
        datas.add(CateData(R.mipmap.icon5,"超市1"))

        datas.add(CateData(R.mipmap.icon1,"新品2"))
        datas.add(CateData(R.mipmap.icon2,"爆款2"))
        datas.add(CateData(R.mipmap.icon3,"农场2"))
        datas.add(CateData(R.mipmap.icon4,"旅行2"))
        datas.add(CateData(R.mipmap.icon5,"超市2"))

        val adapter = CCatalogAdapter()

        rv_labels.adapter = adapter
        adapter.setNewInstance(datas)

        rv_labels.addItemDecoration(object : RecyclerView.ItemDecoration() {

            override fun getItemOffsets(
                outRect: Rect,
                view: View,
                parent: RecyclerView,
                state: RecyclerView.State
            ) {
                super.getItemOffsets(outRect, view, parent, state)
                outRect.bottom =dip2px(context, 15f)
                outRect.left = dip2px(context, 4f)
                outRect.right = dip2px(context, 4f)
            }
        })

    }


}
四、项目demo源码结构图

在这里插入图片描述
有问题或者需要完整源码demo的可以看简介联系我,也可以私信我,我每天都看私信的