最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

需求:類似醫(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; //標(biāo)示是否正在自動輪詢
 private boolean canRun;//標(biāo)示是否可以自動輪詢,可在不需要的是否置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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android實現(xiàn)拖動小球跟隨手指移動效果

    Android實現(xiàn)拖動小球跟隨手指移動效果

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)拖動小球跟隨手指移動效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Android 架構(gòu)之?dāng)?shù)據(jù)庫框架升級

    Android 架構(gòu)之?dāng)?shù)據(jù)庫框架升級

    上一篇講解了# Android 架構(gòu)之?dāng)?shù)據(jù)框架搭建 ,里面含有數(shù)據(jù)庫最基礎(chǔ)的增刪改查功能,不過只考慮了單數(shù)據(jù)庫,開發(fā)者可以舉一反三按照對應(yīng)思路設(shè)計多數(shù)據(jù)庫架構(gòu)。 在本篇里,將會講解令開發(fā)者比較頭疼的數(shù)據(jù)庫升級,需要的朋友可以參考下面文章內(nèi)容
    2021-09-09
  • Android矢量圖之VectorDrawable類自由填充色彩

    Android矢量圖之VectorDrawable類自由填充色彩

    這篇文章主要介紹了Android矢量圖之VectorDrawable類自由填充色彩的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Android四大組件之Service(服務(wù))實例詳解

    Android四大組件之Service(服務(wù))實例詳解

    這篇文章主要介紹了Android四大組件之Service(服務(wù))的用法,結(jié)合實例形式詳細(xì)分析了Service的基本概念,類型,用法與相關(guān)注意事項,需要的朋友可以參考下
    2016-01-01
  • Android實現(xiàn)沉浸式狀態(tài)欄

    Android實現(xiàn)沉浸式狀態(tài)欄

    這篇文章主要為大家詳細(xì)介紹了Android沉浸式狀態(tài)欄的實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • android 9.0 launcher3 去掉抽屜式顯示所有 app(代碼詳解)

    android 9.0 launcher3 去掉抽屜式顯示所有 app(代碼詳解)

    本文通過實例代碼給大家介紹了android 9.0 Launcher3 去掉抽屜式,顯示所有 app,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • android自定義view之實現(xiàn)日歷界面實例

    android自定義view之實現(xiàn)日歷界面實例

    本篇文章主要介紹了android自定義view之實現(xiàn)日歷界面實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • Android如何防止多次點擊事件

    Android如何防止多次點擊事件

    大家都遇到這樣一個問題吧,一個點擊事件多次觸發(fā)導(dǎo)致同樣的內(nèi)容提交了很多次,下面小編給大家?guī)硪黄恼聨椭蠹医鉀Qandroid如何防止多次點擊事件,對android防止多次點擊事件相關(guān)只是感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • 說說在Android如何使用服務(wù)(Service)的方法

    說說在Android如何使用服務(wù)(Service)的方法

    這篇文章主要介紹了說說在Android如何使用服務(wù)(Service)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Android studio 引用aar 進行java開發(fā)的操作步驟

    Android studio 引用aar 進行java開發(fā)的操作步驟

    這篇文章主要介紹了Android studio 引用aar 進行java開發(fā)的操作步驟,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09

最新評論

衡山县| 肥城市| 内乡县| 黑水县| 莱阳市| 周口市| 如皋市| 叶城县| 菏泽市| 竹山县| 贞丰县| 秭归县| 图木舒克市| 新建县| 公主岭市| 龙口市| 三穗县| 琼中| 博客| 宽城| 凤庆县| 酒泉市| 旬阳县| 谷城县| 祁东县| 莆田市| 饶阳县| 双城市| 哈尔滨市| 大足县| 梁平县| 包头市| 甘肃省| 潮安县| 宁乡县| 栖霞市| 万载县| 涟源市| 玉树县| 固镇县| 嫩江县|