美文网首页
recyclerView无限自动滑动

recyclerView无限自动滑动

作者: leap_ | 来源:发表于2019-07-27 09:22 被阅读0次
    public class RewardRecyclerView extends RecyclerView {
        public RewardRecyclerView(Context context) {
            super(context);
        }
    
        public RewardRecyclerView(Context context, @Nullable AttributeSet attrs) {
            super(context, attrs);
            task = new AutoPollTask(this);
        }
    
        public RewardRecyclerView(Context context, @Nullable AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
        }
    
        private static final long TIME = 16;
        private AutoPollTask task;
    
    
        static class AutoPollTask implements Runnable{
    
            private final WeakReference<RewardRecyclerView> mReference;
            //使用弱引用持有外部类引用->防止内存泄漏
            public AutoPollTask(RewardRecyclerView reference) {
                this.mReference = new WeakReference<RewardRecyclerView>(reference);
            }
            @Override
            public void run() {
                RewardRecyclerView recyclerView = mReference.get();
                if (recyclerView != null ) {
                    recyclerView.scrollBy(2, 2);
                    recyclerView.postDelayed(recyclerView.task, TIME);
                }
            }
        }
    
        public void start(){
            postDelayed(task,TIME);
        }
    
        public void stop(){
            removeCallbacks(task);
        }
    }
    
    
    public class RewardNameAdapter extends BaseAdapter<RobotRewardName> {
    
        private int num = 0;
    
        @Override
        protected BaseViewHolder createViewHolder(Context context, ViewGroup parent) {
            return new RewardNameHolder(context,parent);
        }
    
        @Override
        public int getItemCount() {
            num = super.getItemCount();
            return Integer.MAX_VALUE;
        }
    
        @Override
        public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
            position = position%num;
            super.onBindViewHolder(holder, position);
        }
    }
    
    

    相关文章

      网友评论

          本文标题:recyclerView无限自动滑动

          本文链接:https://www.haomeiwen.com/subject/sijsrctx.html