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

Android開(kāi)發(fā)中下拉刷新如何實(shí)現(xiàn)

 更新時(shí)間:2016年07月10日 15:21:44   投稿:lijiao  
這篇文章主要為大家詳細(xì)介紹了Android開(kāi)發(fā)中下拉刷新的實(shí)現(xiàn)方法,感興趣的小伙伴們可以參考一下

因?yàn)樽罱拈_(kāi)發(fā)涉及到了網(wǎng)絡(luò)讀取數(shù)據(jù),那么自然少不了的就是下拉刷新的功能,搜索的方法一般是自己去自定義ListView或者RecyclerView來(lái)重寫(xiě)OnTouch或者OnScroll方法來(lái)實(shí)現(xiàn)手勢(shì)的監(jiān)聽(tīng)然后播放動(dòng)畫(huà)最后刷新界面 

今天說(shuō)的是一個(gè)Google官方提供的下拉刷新布局,名字叫做SwipeRefreshLayout,找到這個(gè)布局的時(shí)候真的是喜出望外啊,下面來(lái)記錄一下它怎么用。 

這里放一下效果圖先,就是下面這個(gè)小圈圈啦 

首先是需要把這個(gè)布局套在我們需要刷新的控件之外,這里是RecyclerView

<android.support.v4.widget.SwipeRefreshLayout
  android:id="@+id/reglost_srl"
  android:layout_width="match_parent"
  android:layout_height="match_parent">

  <android.support.v7.widget.RecyclerView
   android:id="@+id/reglost_rv"
   android:layout_width="match_parent"
   android:layout_height="match_parent" />

 </android.support.v4.widget.SwipeRefreshLayout>

當(dāng)我們需要顯示或者隱藏刷新這個(gè)小動(dòng)畫(huà)的時(shí)候,需要調(diào)用下面這個(gè)方法
 public void setRefreshing(boolean refreshing)
但是,如果是剛開(kāi)始的時(shí)候我們要顯示這個(gè)加載的動(dòng)畫(huà),不能直接把true傳入這個(gè)方法然后調(diào)用,因?yàn)槲覀冊(cè)谠创a中可以看到SwipeRefreshLayout中的一個(gè)名為mOriginalOffsetTop的變量沒(méi)有被初始化,所以動(dòng)畫(huà)是可能顯示不出來(lái)的,那么應(yīng)該怎樣來(lái)顯示呢?用下面的方法 

refreshlayout.post(new Runnable() {
   @Override
   public void run() {
    refreshlayout.setRefreshing(true);
   }
  });

然后,我們還需要給動(dòng)畫(huà)結(jié)束后添加一個(gè)監(jiān)聽(tīng)

 refreshlayout.setOnRefreshListener(this); 
@Override
 public void onRefresh() {
  refreshData(); // refresh the view
 } 

當(dāng)數(shù)據(jù)加載完成了,把動(dòng)畫(huà)隱藏,很簡(jiǎn)單
refreshlayout.setRefreshing(false);
到這里,其實(shí)已經(jīng)基本是全部的用法了,這個(gè)東西真的是方便,但是,不是就沒(méi)有一點(diǎn)問(wèn)題了,稍不注意,其實(shí)還是會(huì)遇到一些問(wèn)題的。
 在網(wǎng)上的很多代碼中,不少的開(kāi)發(fā)者都喜歡在從網(wǎng)絡(luò)加載數(shù)據(jù)前把數(shù)據(jù)集合清空,也就是在onRefresh方法中先調(diào)用data.clear(),但是這里會(huì)出現(xiàn)一個(gè)問(wèn)題,如果正在加載的時(shí)候我們往上滑動(dòng)界面,App就會(huì)直接Crash掉,看圖 

這個(gè)問(wèn)題其實(shí)也很簡(jiǎn)單因?yàn)槿绻覀儼褦?shù)據(jù)清空了,但是列表沒(méi)有刷新,如果滑動(dòng)產(chǎn)生的話就會(huì)去訪問(wèn)data中的數(shù)據(jù),直接就越界了。
 所以正確的做法應(yīng)該是先執(zhí)行聯(lián)網(wǎng)加載數(shù)據(jù),當(dāng)數(shù)據(jù)加載完了就清空集合,重新填入并刷新。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android中網(wǎng)絡(luò)框架簡(jiǎn)單封裝的實(shí)例方法

    Android中網(wǎng)絡(luò)框架簡(jiǎn)單封裝的實(shí)例方法

    在本篇文章里小編給大家整理的是關(guān)于Android中網(wǎng)絡(luò)框架簡(jiǎn)單封裝的實(shí)例方法,需要的朋友們可以學(xué)習(xí)下。
    2020-03-03
  • Android利用FlexboxLayout輕松實(shí)現(xiàn)流動(dòng)布局

    Android利用FlexboxLayout輕松實(shí)現(xiàn)流動(dòng)布局

    flexbox是屬于CSS的一種布局方案,可以簡(jiǎn)單、完整、響應(yīng)式的實(shí)現(xiàn)各種頁(yè)面布局。谷歌將其引入以提高復(fù)雜布局的能力。下面這篇文章主要給大家介紹了在Android中利用FlexboxLayout輕松實(shí)現(xiàn)流動(dòng)布局的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-04-04
  • android相冊(cè)選擇圖片的編碼實(shí)現(xiàn)代碼

    android相冊(cè)選擇圖片的編碼實(shí)現(xiàn)代碼

    本篇文章主要介紹了android相冊(cè)選擇圖片的編碼實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • Android基于Sqlite實(shí)現(xiàn)注冊(cè)和登錄功能

    Android基于Sqlite實(shí)現(xiàn)注冊(cè)和登錄功能

    這篇文章主要為大家詳細(xì)介紹了Android基于Sqlite實(shí)現(xiàn)注冊(cè)和登錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Android實(shí)現(xiàn)清除應(yīng)用緩存功能

    Android實(shí)現(xiàn)清除應(yīng)用緩存功能

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)清除應(yīng)用緩存功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Android中利用ViewHolder優(yōu)化自定義Adapter的寫(xiě)法(必看)

    Android中利用ViewHolder優(yōu)化自定義Adapter的寫(xiě)法(必看)

    下面小編就為大家?guī)?lái)一篇Android中利用ViewHolder優(yōu)化自定義Adapter的寫(xiě)法(必看)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • android 6.0 寫(xiě)入SD卡的權(quán)限申請(qǐng)實(shí)例講解

    android 6.0 寫(xiě)入SD卡的權(quán)限申請(qǐng)實(shí)例講解

    今天小編就為大家分享一篇android 6.0 寫(xiě)入SD卡的權(quán)限申請(qǐng)實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • Android  View移動(dòng)的六種方法小結(jié)

    Android View移動(dòng)的六種方法小結(jié)

    在android開(kāi)發(fā)中,經(jīng)常會(huì)遇到一個(gè)view需要它能夠支持滑動(dòng)的需求。下面通過(guò)本篇文章給大家介紹android view移動(dòng)的六種方法,對(duì)android view移動(dòng)相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • SurfaceView播放視頻發(fā)送彈幕并實(shí)現(xiàn)滾動(dòng)歌詞

    SurfaceView播放視頻發(fā)送彈幕并實(shí)現(xiàn)滾動(dòng)歌詞

    這篇文章主要為大家詳細(xì)介紹了SurfaceView播放視頻發(fā)送彈幕并實(shí)現(xiàn)滾動(dòng)歌詞,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Jetpack Compose實(shí)現(xiàn)對(duì)話框和進(jìn)度條實(shí)例解析

    Jetpack Compose實(shí)現(xiàn)對(duì)話框和進(jìn)度條實(shí)例解析

    對(duì)話框和進(jìn)度條其實(shí)并無(wú)多大聯(lián)系,放在一起寫(xiě)是因?yàn)閮烧叩膬?nèi)容都不多,所以湊到一起,對(duì)話框是我們平時(shí)開(kāi)發(fā)使用得比較多的組件,進(jìn)度條的使用頻率也很高,比如下載文件,上傳文件,處理任務(wù)時(shí)都可以使用進(jìn)度條
    2023-04-04

最新評(píng)論