观心静

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  421 随笔 :: 0 文章 :: 86 评论 :: 139万 阅读

前言

  LinearSnapHelper与PagerSnapHelper是一个滑动自动回正的一个辅助类,一般多用于RecyclerView的滚轮选择器的开发上

  LinearSnapHelper与PagerSnapHelper的区别, LinearSnapHelper多用于一页显示多行内容的线性列表,PagerSnapHelper用于当前只显示一页内容的翻页列表

  转载请注明来源https://www.cnblogs.com/guanxinjing/p/16276217.html

LinearSnapHelper的使用

效果图

 

设置LinearSnapHelper代码
        val provinceLinearSnapHelper = LinearSnapHelper()
        provinceLinearSnapHelper.attachToRecyclerView(mRecyclerView)

监听当前滚动的居中位置,注意是的居中位置

复制代码
        mRecyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
            override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
                super.onScrollStateChanged(recyclerView, newState)
                if (newState == RecyclerView.SCROLL_STATE_IDLE) {
                    if (recyclerView != null && recyclerView.childCount > 0) {
                        provinceLinearSnapHelper.findSnapView(mBinding.province.layoutManager)?.let {
                            val position = recyclerView.getChildAdapterPosition(it)
                        }
                    }
                }
            }
        })
复制代码

PagerSnapHelper

设置代码

        val pagerSnapHelper = PagerSnapHelper()
        pagerSnapHelper.attachToRecyclerView(mBinding.province)

 

 

 

End

posted on   观心静  阅读(3308)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
点击右上角即可分享
微信分享提示