demo地址

注意:打开首页,选择第三个button进入即可,不用管第一个第二个

效果图


开发前准备和具体实现
  1. 万能适配器BRVAH,这里利用了BaseMultiItemQuickAdapter实现在RV上加载不同的布局
  2. 万能指示器MagicIndicator,联动主要是利用了MagicIndicator和RV的方法(也可以使用其他指示器实现),指示器的功能确实很强大,有需要的同学可以研究一下其源码,下附地址MagicIndicator
  3. CoordinatorLayout(协调者布局)实现头部抽屉效果,这个布局可以实现很多动画效果,网上类似讲解很多
核心代码
mRv.addOnScrollListener(object : RecyclerView.OnScrollListener() {
            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
                super.onScrolled(recyclerView, dx, dy)
                var firstPosition = mLayoutManager.findFirstVisibleItemPosition()
                //var lastPosition = mLayoutManager.findLastVisibleItemPosition()
                mChannelHelper.handlePageSelected(firstPosition, false)
            }
        })
override fun setOnTextChange(index: Int) {
        mChannelHelper.handlePageSelected(index)
        var layoutManager = mLayoutManager as LinearLayoutManager
        layoutManager.scrollToPositionWithOffset(index, 0)
    }
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐