android短视频开发,不设置滑动限制,可一直往下滑
android短视频开发,不设置滑动限制,可一直往下滑实现的相关代码
1 | companion object {<br> val TAG = "Main" <br> }<br> <br> <br> private val adapter by lazy {<br> object : BaseQuickAdapter<Int, BaseViewHolder>(R.layout.item_layout) {<br> override fun convert(helper: BaseViewHolder?, item: Int?) {<br> helper?.itemView?.apply {<br> textView.text = "hello world$item" <br> }<br> }<br> <br> override fun getItemCount(): Int {<br> return Int.MAX_VALUE<br> }<br> <br> override fun getItem(position: Int): Int? {<br> return data[position % data.size]<br> }<br> <br> override fun getItemViewType(position: Int): Int {<br> var count = headerLayoutCount + data.size<br> if ( count <= 0) {<br> count = 1<br> }<br> return super.getItemViewType(position % count )<br> }<br> }<br> }<br> <br> var handler = Handler()<br> var currentInt = 0<br> <br> override fun onCreate(savedInstanceState: Bundle?) {<br> super.onCreate(savedInstanceState)<br> setContentView(R.layout.activity_camrea)<br> <br> recyclerView.layoutManager = linearLayoutManager<br> recyclerView.setHasFixedSize(true)<br> <br> recyclerView.adapter = adapter<br> adapter.setNewData(<br> listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)<br> )<br> <br> //PagerSnapHelper().attachToRecyclerView(recyclerView)<br> <br> play()<br> <br> recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {<br> override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {<br> super.onScrolled(recyclerView, dx, dy)<br> play()<br> }<br> <br> override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {<br> super.onScrollStateChanged(recyclerView, newState)<br> <br> /*if (newState == RecyclerView.SCROLL_STATE_IDLE) {<br> play()<br> }*/<br> <br> }<br> })<br> <br> /*var animator=ValueAnimator.ofInt(0,recyclerView.height)<br> animator.duration=2000<br> animator.addUpdateListener { <br> var a=it.animatedValue as Int<br> recyclerView.translationY=-a.toFloat()<br> recyclerView.requestLayout()<br> }<br> animator.repeatMode=ValueAnimator.REVERSE<br> animator.repeatCount=ValueAnimator.INFINITE<br> animator.start()*/<br> <br> }<br> <br> private fun play() {<br> currentInt++<br> recyclerView.smoothScrollToPosition(currentInt)<br> /*handler.postDelayed({<br> currentInt++<br> //recyclerView.scrollToPosition(currentInt)<br> recyclerView.smoothScrollToPosition(currentInt)<br>// val layoutManager = recyclerView.layoutManager as LinearLayoutManager<br>// layoutManager.scrollToPositionWithOffset(currentInt, 0)<br> }, 2000)*/<br> }<br> var linearLayoutManager: LinearLayoutManager = object : LinearLayoutManager(this) {<br> override fun smoothScrollToPosition(<br> recyclerView: RecyclerView,<br> state: RecyclerView.State,<br> position: Int<br> ) {<br> val smoothScroller: LinearSmoothScroller =<br> object : LinearSmoothScroller(recyclerView.context) {<br> override fun calculateSpeedPerPixel(displayMetrics: DisplayMetrics): Float {<br> // 返回:滑过1px时经历的时间(ms)。 <br> return 20000f / displayMetrics.densityDpi<br> }<br> <br> override fun calculateDtToFit(<br> viewStart: Int,<br> viewEnd: Int,<br> boxStart: Int,<br> boxEnd: Int,<br> snapPreference: Int<br> ): Int {<br> return boxStart - viewStart<br> }<br> }<br> smoothScroller.targetPosition = position<br> startSmoothScroll(smoothScroller)<br> <br> }<br> } |
以上就是android短视频开发,不设置滑动限制,可一直往下滑实现的相关代码, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现