Android開發中下拉重新整理如何?_Android

來源:互聯網
上載者:User

因為最近的開發涉及到了網路讀取資料,那麼自然少不了的就是下拉重新整理的功能,搜尋的方法一般是自己去自訂ListView或者RecyclerView來重寫OnTouch或者OnScroll方法來實現手勢的監聽然後播放動畫最後重新整理介面 

今天說的是一個Google官方提供的下拉重新整理布局,名字叫做SwipeRefreshLayout,找到這個布局的時候真的是喜出望外啊,下面來記錄一下它怎麼用。 

這裡放一下效果圖先,就是下面這個小圈圈啦 

首先是需要把這個布局套在我們需要重新整理的控制項之外,這裡是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>

當我們需要顯示或者隱藏重新整理這個小動畫的時候,需要調用下面這個方法
 public void setRefreshing(boolean refreshing)
但是,如果是剛開始的時候我們要顯示這個載入的動畫,不能直接把true傳入這個方法然後調用,因為我們在原始碼中可以看到SwipeRefreshLayout中的一個名為mOriginalOffsetTop的變數沒有被初始化,所以動畫是可能顯示不出來的,那麼應該怎樣來顯示呢?用下面的方法 

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

然後,我們還需要給動畫結束後添加一個監聽

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

當資料載入完成了,把動畫隱藏,很簡單
refreshlayout.setRefreshing(false);
到這裡,其實已經基本是全部的用法了,這個東西真的是方便,但是,不是就沒有一點問題了,稍不注意,其實還是會遇到一些問題的。
 在網上的很多代碼中,不少的開發人員都喜歡在從網路載入資料前把資料集合清空,也就是在onRefresh方法中先調用data.clear(),但是這裡會出現一個問題,如果正在載入的時候我們往上滑動介面,App就會直接Crash掉,看圖 

這個問題其實也很簡單因為如果我們把資料清空了,但是列表沒有重新整理,如果滑動產生的話就會去訪問data中的資料,直接就越界了。
 所以正確的做法應該是先執行連網載入資料,當資料載入完了就清空集合,重新填入並重新整理。

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援雲棲社區。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.