为了账号安全,请及时绑定邮箱和手机立即绑定

有没有我们可以在recyclerview中获得字幕效果的库?

有没有我们可以在recyclerview中获得字幕效果的库?

aluckdog 2022-12-07 14:26:58
块引用我正在尝试实现自动滚动无限 recyclerview,就像 hotstar 在 hotstar VIP 订阅页面中拥有它一样。我试过给定的代码。对于自动滚动回收器:-binding.rvPartyOfWeek.addOnScrollListener(CustomScrollListener())private val SCROLLING_RUNNABLE = object : Runnable {    override fun run() {        val duration = 10        val pixelsToMove = 22        if (!isPartyOfWeekScrolling) {            binding.rvPartyOfWeek.smoothScrollBy(pixelsToMove, 0)        }        mHandler.postDelayed(this, duration.toLong())    }}对于无限滚动:-binding.rvPartyOfWeek.addOnScrollListener(object : RecyclerView.OnScrollListener() {            override fun onScrolled(recyclerView2: RecyclerView, dx: Int, dy: Int) {                super.onScrolled(recyclerView2, dx, dy)                val totalItemCount = layoutManagerparty.itemCount                val lastVisibleItem = layoutManagerparty.findLastVisibleItemPosition()                if (totalItemCount <= (lastVisibleItem + 3)) {                    if (totalItemCount > 22) {                        for (i in 0..10) {                            listParty.removeAt(0)                        }                    }                    listParty.addAll(listPartySingle)                    adapterpartyofweek.notifyDataSetChanged()                    Log.i("Helllo listParty", listParty.size.toString())                }            }        })它在某些设备上滚动不流畅,在某些旧设备上崩溃。
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

我做了如下:


为 RecyclerView 创建自动滚动

`


private fun autoScroll() {

        scrollCount = 0;

        var speedScroll: Long = 1200;

        val runnable = object : Runnable {

            override fun run() {

                if (layoutManager.findFirstVisibleItemPosition() >= imageArrayList.size / 2) {

                    adapter.load()

                }

                recyclerView.smoothScrollToPosition(scrollCount++)

                Log.e(TAG, "run: $scrollCount")

                handler.postDelayed(this, speedScroll)

            }

        }

        handler.postDelayed(runnable, speedScroll)

    }

`


自动创建平滑滚动

`


layoutManager = object : LinearLayoutManager(this@MainActivity) {

            override fun smoothScrollToPosition(recyclerView: RecyclerView, state: RecyclerView.State?, position: Int) {

                val smoothScroller = object : LinearSmoothScroller(this@MainActivity) {

                    override fun calculateSpeedPerPixel(displayMetrics: DisplayMetrics?): Float {

                        return 5.0f;

                    }

                }

                smoothScroller.targetPosition = position

                startSmoothScroll(smoothScroller)

            }

        }

`


对于源代码,查看 GitHub 项目链接 https://github.com/Mahesh2318/AutoScrollRecyclerView


查看完整回答
反对 回复 2022-12-07
  • 1 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信