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

android使用PullToRefresh框架實現(xiàn)ListView下拉刷新上拉加載更多

 更新時間:2017年12月05日 09:43:48   作者:ZhengJiaoCsdn  
這篇文章主要介紹了android使用PullToRefresh框架實現(xiàn)ListView下拉刷新上拉加載更多,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Android實現(xiàn)ListView下拉刷新上拉加載更多的具體代碼,供大家參考,具體內容如下

其實谷歌官方目前已經(jīng)推出ListView下拉刷新框架SwipeRefreshLayout,想了解的朋友可以點擊 android使用SwipeRefreshLayout實現(xiàn)ListView下拉刷新上拉加載 了解一下;

大家不難發(fā)現(xiàn)當你使用SwipeRefreshLayout下拉的時候布局文件不會跟著手勢往下滑,而且想要更改這個缺陷好像非常不容易。

雖然SwipeRefreshLayout非常簡單易懂,但是需求需要下拉刷新的時候跟著手勢下滑就不能用SwipeRefreshLayout了;

上面圖片效果使用的是PullToRefresh框架,在我的工程里面沒有導入類庫和jar包,而是把下拉刷新功能直接抽取出來使用;
當下拉的時候回調監(jiān)聽,在抽取完下拉刷新功能的基礎上實現(xiàn)上拉加載更多功能實現(xiàn)也非常簡單,所以順手寫上了;
我是從github上下載的Android-PullToRefresh-master框架,在library中抽取的;
首先需要復制的類大概有十個左右:


然后跟進報錯查看需要什么文件就復制什么文件;把錯誤搞定之后首先來看下布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 xmlns:tools="http://schemas.android.com/tools" 
 android:layout_width="match_parent" 
 android:layout_height="match_parent" 
 android:orientation="vertical"> 
 
 <!-- 我們添加了一個屬性:ptr:ptrMode="both" ,意思:上拉和下拉都支持。 
  可選值為:disabled(禁用下拉刷新),pullFromStart(僅支持下拉刷新), 
  pullFromEnd(僅支持上拉刷新),both(二者都支持),manualOnly(只允許手動觸發(fā)) --> 
 <!-- 
  ptr:ptrAnimationStyle="rotate" 
  FlipLoadingLayout為iOS風格的箭頭顛倒的刷新動畫 
  ptr:ptrAnimationStyle="flip" 
  RotateLoadingLayout為android風格的圖片旋轉動畫 --> 
 <com.ptrflv.www.pulltorefreshlistview.PullToRefreshListView 
  xmlns:ptr="http://schemas.android.com/apk/res-auto" 
  android:id="@+id/pull_to_refresh_listview" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content" 
  ptr:ptrMode="both" 
  ptr:ptrAnimationStyle="flip" 
   /> 
 
</LinearLayout>

 值得注意的是默認情況下下拉刷新的執(zhí)行動畫中顯示的文本是英文,這里我們需要手動修改pull_refresh_strings.xml中的內容:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
 
 <!-- 上拉刷新 --> 
 <!-- …代表三個點 ... --> 
 <string name="pull_to_refresh_pull_label">向下拉刷新…</string> 
 <string name="pull_to_refresh_release_label">松開更新…</string> 
 <string name="pull_to_refresh_refreshing_label">正在加載…</string> 
 
 <!-- 下拉加載更多 --> 
 <string name="pull_to_refresh_from_bottom_pull_label">向下拉加載更多…</string> 
 <string name="pull_to_refresh_from_bottom_release_label">松開加載更多…</string> 
 <string name="pull_to_refresh_from_bottom_refreshing_label">正在加載…</string> 
 
</resources> 

下面是調用下拉刷新和上下加載更多的代碼:

public class MainActivity extends Activity { 
 
 private PullToRefreshListView pullToRefreshListView; 
 //adapter的數(shù)據(jù)源 
 private List<String> numList=new ArrayList<String>(); 
 private ArrayAdapter<String> arrayAdapter; 
  
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.activity_main); 
  pullToRefreshListView=(PullToRefreshListView) findViewById(R.id.pull_to_refresh_listview); 
  //初始化數(shù)據(jù) 
  for(int x=0;x<18;x++){ 
   numList.add(""+x); 
  } 
   
  arrayAdapter = new ArrayAdapter<String>(this, R.layout.item_listview,R.id.textview,numList); 
  pullToRefreshListView.setAdapter(arrayAdapter); 
   
  //設定刷新監(jiān)聽 
  pullToRefreshListView.setOnRefreshListener(new OnRefreshListener<ListView>() { 
 
   @Override 
   public void onRefresh(PullToRefreshBase<ListView> refreshView) { 
     
    String label = DateUtils.formatDateTime(getApplicationContext(), System.currentTimeMillis(), 
       DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL); 
     
     // 顯示最后更新的時間 
     refreshView.getLoadingLayoutProxy() .setLastUpdatedLabel(label); 
     
     //代表下拉刷新 
     if(refreshView.getHeaderLayout().isShown()){ 
      
      new Thread(){ 
       public void run() { 
        try { 
         sleep(1000); 
         
         handler.sendEmptyMessage(99); 
         
        } catch (InterruptedException e) { 
         e.printStackTrace(); 
        } 
       }; 
      }.start(); 
     } 
     
     //代表下拉刷新 
     if(refreshView.getFooterLayout().isShown()){ 
      new Thread(){ 
       public void run() { 
        try { 
         sleep(1000); 
         
         handler.sendEmptyMessage(98); 
         
        } catch (InterruptedException e) { 
         e.printStackTrace(); 
        } 
       }; 
      }.start(); 
     } 
     
   } 
  }); 
   
 } 
  
 private Handler handler=new Handler(){ 
  public void handleMessage(android.os.Message msg) { 
    
   if(msg.what==99){ 
    numList.add(0, "英雄聯(lián)盟"); 
    arrayAdapter.notifyDataSetChanged(); 
    //關閉刷新的動畫 
    pullToRefreshListView.onRefreshComplete(); 
   } 
    
   if(msg.what==98){ 
    numList.add(numList.size(), "魔獸世界"); 
    arrayAdapter.notifyDataSetChanged(); 
    //關閉刷新的動畫 
    pullToRefreshListView.onRefreshComplete(); 
   } 
    
  }; 
 }; 
 
} 

在判斷上拉刷新和下拉加載的時候
refreshView.getFooterLayout().isShown()
refreshView.getHeaderLayout().isShown()會報錯,因為PullToRefreshBase這兩個方法默認不是共有方法,我們需要手動該更為public

源碼下載

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

相關文章

  • Android編程顯示網(wǎng)絡上的圖片實例詳解

    Android編程顯示網(wǎng)絡上的圖片實例詳解

    這篇文章主要介紹了Android編程顯示網(wǎng)絡上的圖片,結合實例形式詳細分析了Android顯示網(wǎng)絡圖片的流程與具體操作技巧,需要的朋友可以參考下
    2016-10-10
  • Android高仿QQ6.0側滑刪除實例代碼

    Android高仿QQ6.0側滑刪除實例代碼

    先給大家分享一下,側滑刪除,布局也就是前面一個item,然后有兩個隱藏的按鈕(TextView也可以),然后我們可以向左側滑動,然后顯示出來,然后對delete(刪除鍵)實現(xiàn)監(jiān)聽,就可以了哈。好了那就來看看代碼怎么實現(xiàn)的吧
    2016-02-02
  • Android自定義View實現(xiàn)直播點贊特效

    Android自定義View實現(xiàn)直播點贊特效

    這篇文章主要為大家詳細介紹了Android自定義View實現(xiàn)直播點贊特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • Android?app啟動節(jié)點與上報啟動實例詳解

    Android?app啟動節(jié)點與上報啟動實例詳解

    系統(tǒng)的啟動過程非常復雜,下面這篇文章主要給大家介紹了關于Android?app啟動節(jié)點與上報啟動的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • Android開發(fā)自學路線圖

    Android開發(fā)自學路線圖

    這篇文章主要介紹了Android開發(fā)自學路線圖,本文講解的路線圖分為JAVA、Android基礎、Web基礎、Android項目4部份,是一個入門級學習路線圖,需要的朋友可以參考下
    2015-04-04
  • Android Rxjava3 使用場景詳解

    Android Rxjava3 使用場景詳解

    本文主要介紹了Android Rxjava3 使用場景詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • Android將String保存為SD卡中TXT文件的方法

    Android將String保存為SD卡中TXT文件的方法

    今天小編就為大家分享一篇Android將String保存為SD卡中TXT文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Android?Adapter適配器使用示例講解

    Android?Adapter適配器使用示例講解

    這篇文章主要為大家介紹了Android?Adapter適配器使用示例講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Android編程實現(xiàn)兩個Activity相互切換而不使用onCreate()的方法

    Android編程實現(xiàn)兩個Activity相互切換而不使用onCreate()的方法

    這篇文章主要介紹了Android編程實現(xiàn)兩個Activity相互切換而不使用onCreate()的方法,結合實例形式分析了多個Activity切換而不重新創(chuàng)建的操作技巧,需要的朋友可以參考下
    2017-01-01
  • Android NDK開發(fā)的環(huán)境搭建與簡單示例

    Android NDK開發(fā)的環(huán)境搭建與簡單示例

    本文主要介紹Android NDK的知識,這里整理了相關資料,來說明如何搭建相應環(huán)境和簡單實例,幫助大家理解,有興趣的小伙伴可以參考下
    2016-09-09

最新評論