Android如何实现自动轮询的RecycleView

这篇文章将为大家详细讲解有关Android如何实现自动轮询的RecycleView,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、网站制作、外贸星空体育app最新版本(2024已更新)建设、西盟网络推广、微信小程序、西盟网络营销、西盟企业策划、西盟品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供西盟建站搭建服务,24小时服务热线:18982081108,官方网址:www.executivehouseboatcharters.com

需求:类似医院或者商场,大屏幕无限轮播item (广告词/广告图…),供大家参考,具体内容如下

代码如下

/** * Created by Xia_焱 on 2017/8/20. */public class AutoPollRecyclerView extends RecyclerView { private static final long TIME_AUTO_POLL = 32; AutoPollTask autoPollTask; private boolean running; //标示是否正在自动轮询 private boolean canRun;//标示是否可以自动轮询,可在不需要的是否置false public AutoPollRecyclerView(Context context, @Nullable AttributeSet attrs) {  super(context, attrs);  autoPollTask = new AutoPollTask(this); } static class AutoPollTask implements Runnable {  private final WeakReference<AutoPollRecyclerView> mReference;  //使用弱引用持有外部类引用->防止内存泄漏  public AutoPollTask(AutoPollRecyclerView reference) {   this.mReference = new WeakReference<AutoPollRecyclerView>(reference);  }  @Override  public void run() {   AutoPollRecyclerView recyclerView = mReference.get();   if (recyclerView != null && recyclerView.running &&recyclerView.canRun) {    recyclerView.scrollBy(2, 2);    recyclerView.postDelayed(recyclerView.autoPollTask,recyclerView.TIME_AUTO_POLL);   }  } } //开启:如果正在运行,先停止->再开启 public void start() {  if (running)   stop();  canRun = true;  running = true;  postDelayed(autoPollTask,TIME_AUTO_POLL); } public void stop(){  running = false;  removeCallbacks(autoPollTask); } @Override public boolean onTouchEvent(MotionEvent e) {  switch (e.getAction()){   case MotionEvent.ACTION_DOWN:    if (running)     stop();    break;   case MotionEvent.ACTION_UP:   case MotionEvent.ACTION_CANCEL:   case MotionEvent.ACTION_OUTSIDE:    if (canRun)     start();    break;  }  return super.onTouchEvent(e); }}

开启:如果正在运行,先停止->再开启

public void start() {  if (running)   stop();  canRun = true;  running = true;  postDelayed(autoPollTask,TIME_AUTO_POLL); } public void stop(){  running = false;  removeCallbacks(autoPollTask); } @Override public boolean onTouchEvent(MotionEvent e) {  switch (e.getAction()){   case MotionEvent.ACTION_DOWN:    if (running)     stop();    break;   case MotionEvent.ACTION_UP:   case MotionEvent.ACTION_CANCEL:   case MotionEvent.ACTION_OUTSIDE:    if (canRun)     start();    break;  }  return super.onTouchEvent(e); }}

Adapter中的代码如下

@Override public void onBindViewHolder(BaseViewHolder holder, int position) {  String data = mData.get(position%mData.size());  holder.setText(R.id.tv_content,data); } @Override public int getItemCount() {  return Integer.MAX_VALUE; }

Activity中的代码

mRecyclerView.setAdapter(adapter);  if (true) //保证itemCount的总个数宽度超过屏幕宽度->自己处理   mRecyclerView.start();

关于“Android如何实现自动轮询的RecycleView”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

文章名称:Android如何实现自动轮询的RecycleView
转载来于:/article16/psiigg.html

成都网站建设公司_创新互联,为您提供手机网站建设网站导航网站设计公司小程序开发定制网站静态网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都seo排名网站优化