欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android實現(xiàn)自動輪詢的RecycleView

 更新時間:2020年06月19日 10:35:27   作者:Xia_焱  
這篇文章主要為大家詳細介紹了Android實現(xiàn)自動輪詢的RecycleView,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

需求:類似醫(yī)院或者商場,大屏幕無限輪播item (廣告詞/廣告圖…),供大家參考,具體內(nèi)容如下

代碼如下

/**
 * 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;
 //使用弱引用持有外部類引用->防止內(nèi)存泄漏
 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的總個數(shù)寬度超過屏幕寬度->自己處理
 mRecyclerView.start();

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Android控件SeekBar仿淘寶滑動驗證效果

    Android控件SeekBar仿淘寶滑動驗證效果

    這篇文章主要為大家詳細介紹了Android控件SeekBar仿淘寶滑動驗證效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Kotlin WorkManager使用方法詳解

    Kotlin WorkManager使用方法詳解

    這篇文章主要介紹了Kotlin WorkManager使用方法,WorkManager是 安卓體系結(jié)構(gòu)之一,也是Android JetPack的一部分。WorkManager用于可延期并需要保證執(zhí)行的后臺工作
    2023-01-01
  • 詳解Android如何設計一個全局可調(diào)用的ViewModel對象

    詳解Android如何設計一個全局可調(diào)用的ViewModel對象

    很多時候我們需要維護一個全局可用的ViewModel,因為這樣可以維護全局同一份數(shù)據(jù)源,且方便使用協(xié)程綁定App的生命周期,那如何設計全局可用的ViewModel對象,文中介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • 詳解Android Bitmap的常用壓縮方式

    詳解Android Bitmap的常用壓縮方式

    這篇文章主要介紹了詳解Android Bitmap的常用壓縮方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • 詳解Android應用中DialogFragment的基本用法

    詳解Android應用中DialogFragment的基本用法

    Android App中建議使用DialogFragment作為對話框的容器,DialogFragment類提供了創(chuàng)建對話框并管理其外觀需要的所有控件,本文主要內(nèi)容便為詳解Android應用中DialogFragment的基本用法,而不再需要調(diào)用Dialog的方法需要的朋友可以參考下
    2016-05-05
  • viewpager+photoview實現(xiàn)圖片查看器

    viewpager+photoview實現(xiàn)圖片查看器

    這篇文章主要為大家詳細介紹了viewpager+photoview實現(xiàn)圖片查看器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Android WebView 詳解及簡單實例

    Android WebView 詳解及簡單實例

    這篇文章主要介紹了Android WebView 詳解及簡單實例的相關資料,需要的朋友可以參考下
    2017-04-04
  • Android實現(xiàn)簡單的banner輪播圖

    Android實現(xiàn)簡單的banner輪播圖

    這篇文章主要為大家詳細介紹了Android實現(xiàn)簡單的banner輪播圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • android實現(xiàn)單選按鈕功能

    android實現(xiàn)單選按鈕功能

    這篇文章主要為大家詳細介紹了android實現(xiàn)單選按鈕功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Android使用shape使組件呈現(xiàn)出特殊效果的方法

    Android使用shape使組件呈現(xiàn)出特殊效果的方法

    這篇文章主要介紹了Android使用shape使組件呈現(xiàn)出特殊效果的方法,結(jié)合實例形式分析了Android中shape文件相關屬性、功能及使用方法,需要的朋友可以參考下
    2017-07-07

最新評論