在线直播系统源码,循环滚动RecyclerView的实现

在线直播系统源码,循环滚动RecyclerView的实现

 

1
public class AutoRecyclerView extends RecyclerView {<br>    private static final long TIME_AUTO_POLL = 16;<br> private final AutoPollTask autoPollTask;<br> private boolean running; //表示是否正在自动轮询<br> private boolean canRun;//表示是否可以自动轮询<br> public AutoRecyclerView(@NonNull Context context) {<br>        super(context);<br> autoPollTask = new AutoPollTask(this);<br> }<br>    public AutoRecyclerView(@NonNull Context context, @Nullable AttributeSet attrs) {<br>        super(context, attrs);<br> autoPollTask = new AutoPollTask(this);<br> }<br>    public AutoRecyclerView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {<br>        super(context, attrs, defStyleAttr);<br> autoPollTask = new AutoPollTask(this);<br> }<br>    private static class AutoPollTask implements Runnable {<br>        private final WeakReference<AutoRecyclerView> mReference;<br> //使用弱引用持有外部类引用->防止内存泄漏<br> public AutoPollTask(AutoRecyclerView reference) {<br>            this.mReference = new WeakReference<>(reference);<br> }<br>        @Override<br> public void run() {<br>        AutoRecyclerView recyclerView = mReference.get();<br> if (recyclerView != null && recyclerView.running && recyclerView.canRun) {<br> //水平移动<br>            recyclerView.scrollBy(2, 0);<br>            //竖直移动<br>            //recyclerView.scrollBy(0, 2);<br> recyclerView.postOnAnimationDelayed(recyclerView.autoPollTask, TIME_AUTO_POLL);<br> }<br>        }<br>    }<br>    //开启:如果正在运行,先停止->再开启<br> private void start() {<br>        if (running)<br>            stop();<br> canRun = true;<br> running = true;<br> postDelayed(autoPollTask, TIME_AUTO_POLL);<br> }<br>    private void stop() {<br>        running = false;<br> removeCallbacks(autoPollTask);<br> }<br>    @Override<br> public boolean dispatchTouchEvent(MotionEvent ev) {<br>        return true;<br> }<br>    public void startAutoScrolling(){<br>        if (running){<br>            return;<br> }<br>        start();<br> }<br>    public void stopAutoScrolling(){<br>        stop();<br> }<br>    public boolean isAutoScrolling(){<br>        return running;<br> }<br>}

以上就是在线直播系统源码,循环滚动RecyclerView的实现, 更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2021-12-20 直播源码网站,菜单栏的横向滑动
2021-12-20 短视频直播系统,简单实现个人主页背景图片和文字颜色的更改
2021-12-20 android短视频开发,实现动态点赞出现的点赞动画
点击右上角即可分享
微信分享提示