1. 程式人生 > >【Android-PullToRefresh】 上拉重新整理、下拉載入 使用詳解

【Android-PullToRefresh】 上拉重新整理、下拉載入 使用詳解

轉載自:http://blog.csdn.net/lmj623565791/article/details/38238749,本文出自:【張鴻洋的部落格】

1、ListView下拉重新整理快速入門

pull-to-refresh對ListView進行了封裝,叫做:PullToRefreshListView,用法和listview沒什麼區別,下面看demo.

佈局檔案:

  1. <RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  2.     xmlns:tools="http://schemas.android.com/tools"
  3.     android:layout_width="match_parent"
  4.     android:layout_height="match_parent">
  5.     <com.handmark.pulltorefresh.library.PullToRefreshListView
  6.         xmlns:ptr="http://schemas.android.com/apk/res-auto"
  7.         android:id="@+id/pull_refresh_list"
  8.         android:layout_width="fill_parent"
  9.         android:layout_height
    ="fill_parent"
  10.         android:cacheColorHint="#00000000"
  11.         android:divider="#19000000"
  12.         android:dividerHeight="4dp"
  13.         android:fadingEdge="none"
  14.         android:fastScrollEnabled="false"
  15.         android:footerDividersEnabled="false"
  16.         android:headerDividersEnabled="false"
  17.         android:smoothScrollbar
    ="true">
  18.     </com.handmark.pulltorefresh.library.PullToRefreshListView>
  19. </RelativeLayout>

聲明瞭一個PullToRefreshListView,裡面所有的屬性都是ListView的,沒有任何其他屬性,當然了PullToRefreshListView也提供了很多配置的屬性,後面會詳細介紹。

Activity的程式碼:

  1. package com.example.zhy_pulltorefreash_chenyoca;  
  2. import java.util.LinkedList;  
  3. import android.app.Activity;  
  4. import android.os.AsyncTask;  
  5. import android.os.Bundle;  
  6. import android.text.format.DateUtils;  
  7. import android.widget.ArrayAdapter;  
  8. import android.widget.ListView;  
  9. import com.handmark.pulltorefresh.library.PullToRefreshBase;  
  10. import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;  
  11. import com.handmark.pulltorefresh.library.PullToRefreshListView;  
  12. publicclass PullToRefreshListActivity extends Activity  
  13. {  
  14.     private LinkedList<String> mListItems;  
  15.     /** 
  16.      * 上拉重新整理的控制元件 
  17.      */
  18.     private PullToRefreshListView mPullRefreshListView;  
  19.     private ArrayAdapter<String> mAdapter;  
  20.     privateint mItemCount = 9;  
  21.     @Override
  22.     protectedvoid onCreate(Bundle savedInstanceState)  
  23.     {  
  24.         super.onCreate(savedInstanceState);  
  25.         setContentView(R.layout.activity_main);  
  26.         // 得到控制元件
  27.         mPullRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);  
  28.         //初始化資料
  29.         initDatas();  
  30.         //設定介面卡
  31.         mAdapter = new ArrayAdapter<String>(this,  
  32.                 android.R.layout.simple_list_item_1, mListItems);  
  33.         mPullRefreshListView.setAdapter(mAdapter);  
  34.         // 設定監聽事件
  35.         mPullRefreshListView  
  36.                 .setOnRefreshListener(new OnRefreshListener<ListView>()  
  37.                 {  
  38.                     @Override
  39.                     publicvoid onRefresh(  
  40.                             PullToRefreshBase<ListView> refreshView)  
  41.                     {  
  42.                         String label = DateUtils.formatDateTime(  
  43.                                 getApplicationContext(),  
  44.                                 System.currentTimeMillis(),  
  45.                                 DateUtils.FORMAT_SHOW_TIME  
  46.                                         | DateUtils.FORMAT_SHOW_DATE  
  47.                                         | DateUtils.FORMAT_ABBREV_ALL);  
  48.                         // 顯示最後更新的時間
  49.                         refreshView.getLoadingLayoutProxy()  
  50.                                 .setLastUpdatedLabel(label);  
  51.                         // 模擬載入任務
  52.                         new GetDataTask().execute();  
  53.                     }  
  54.                 });  
  55.     }  
  56.     privatevoid initDatas()  
  57.     {  
  58.         // 初始化資料和資料來源
  59.         mListItems = new LinkedList<String>();  
  60.         for (int i = 0; i < mItemCount; i++)  
  61.         {  
  62.             mListItems.add("" + i);  
  63.         }  
  64.     }  
  65.     privateclass GetDataTask extends AsyncTask<Void, Void, String>  
  66.     {  
  67.         @Override
  68.         protected String doInBackground(Void... params)  
  69.         {  
  70.             try
  71.             {  
  72.                 Thread.sleep(2000);  
  73.             } catch (InterruptedException e)  
  74.             {  
  75.             }  
  76.             return"" + (mItemCount++);  
  77.         }  
  78.         @Override
  79.         protectedvoid onPostExecute(String result)  
  80.         {  
  81.             mListItems.add(result);  
  82.             mAdapter.notifyDataSetChanged();  
  83.             // Call onRefreshComplete when the list has been refreshed.
  84.             mPullRefreshListView.onRefreshComplete();  
  85.         }  
  86.     }  
  87. }  

程式碼極其簡單,得到PullToRefreshListView控制元件,然後像ListView一樣設定資料集。當然了,我們有下拉重新整理,所以必須設定下拉重新整理的回撥:

setOnRefreshListener(new OnRefreshListener<ListView>(){}

我們在回撥中模擬了一個非同步任務,載入了一個Item。

效果圖:


下拉時,執行我們的GetDataTask任務,任務執行完成後在onPostExecute中 呼叫mPullRefreshListView.onRefreshComplete();完成重新整理。

相關推薦

Android-PullToRefresh 重新整理載入 使用

轉載自:http://blog.csdn.net/lmj623565791/article/details/38238749,本文出自:【張鴻洋的部落格】 1、ListView下拉重新整理快速入門 pull-to-refresh對ListView進行了

分頁, 重新整理載入

一、自定義listview package com.fragment.home; import android.content.Context; import android.util.AttributeSet; import android.view.MotionEvent; impor

prlibrary重新整理載入

import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ListVi

React-native 三方框架實現重新整理載入網路請求以及跳轉先詳情頁面

首先 第一步 需要匯入三方的類庫 和跳轉詳情頁面 yarn add react-native-refresh-list-view //導包 import RefreshListView, { RefreshState } from “react-nati

基於React Native官方元件FlatList,增加可定製化“重新整理載入更多”元件API的新列表元件react-native-refresh-loadmore-flatlist

react-native-refresh-loadmore-flatlist 基於React Native官方元件FlatList,增加可定製化“下拉重新整理”、“下拉載入更多”元件API的新列表元件,具體實現功能如下: 自定義下拉重新整理元件API 自定義上拉Lo

PullToRefreshListView簡單實現重新整理載入

public class MainActivity extends AppCompatActivity  { //http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=10&page=1     @BindView(R.id

微信小程式重新整理載入

上拉重新整理和下拉載入有兩種方式可以實現: 1.使用scroll-view元件進行操作,使用自帶的scrolltoupper和scrolltolower事件可以實現。適合頁面區域性的上拉下拉。 附上

Android中recyclerview+pullToRefresh實現重新整理載入

一. 依賴 implementation 'com.jwenfeng.pulltorefresh:library:1.0.3' 要把minSdkVersion 改為16以上 二.佈局 <LinearLayout xmlns:android="http:/

輪播圖pulltofresh重新整理載入

@輪播圖、pulltofresh上拉重新整理,下拉載入TOC import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v4.view.Vi

android 自定義ListView實現重新整理分頁載入點選事件——自定義控制元件學習(七)

package com.example.administrator.customerpulldownrefreshandpageload; import android.content.Context; import android.os.Handler; import android.os.Message

有關推挽輸出開漏輸出復用開漏輸出復用推挽輸出以及輸入輸入浮空輸入模擬輸入區別——(轉載)

應用 以及 連接數 17. 推拉 情況 輸出 floating 補充 最近在看數據手冊的時候,發現在Cortex-M3裏,對於GPIO的配置種類有8種之多: (1)GPIO_Mode_AIN 模擬輸入(2)GPIO_Mode_IN_FLOATING 浮空輸入(3)GPIO_

電阻電阻電流灌電流扇出係數等基本概念

       在使用數字積體電路時,拉電流輸出和灌電流輸出是一個很重要的概念,例如在使用反向器作輸出顯示時,圖1是拉電流,即當輸出端為高電平時才符合發光二極體正向連線的要求,但這種拉電流輸出對於反向器只能輸出零點幾毫安的電流用

用vue-scroller做重新整理載入的模板(簡單明瞭,通用)

1.首先下外掛,並在你的vue專案中引人 npm i vue-scroller -D import VueScroller from 'vue-scroller 2.Vue.use(VueScroller )(這一步別忘啦) 3.在你需要做上拉重新整理,下拉載入的地方加上<scroll

OC 建立TableView基類並結合MJRefresh實現重新整理載入

1.建立繼承自UITableView的基類BaseTableView: #import <UIKit/UIKit.h> @class BaseTableView; @protocol BaseTableViewDelegate <NSObject> @option

RecyclerView重新整理載入

Activity介面方法 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_mai

微信小程式重新整理載入2種方法實現

微信小程式上拉重新整理和下拉載入2種方法實現,onPullDownRefresh,scroll-view使用 一、XXX.json開啟下拉重新整理 {    "enablePullDownRefresh": true }   二、XXX.js onP

微控制器電阻電阻的和選取

 一、定義   1、上拉就是將不確定的訊號通過一個電阻嵌位在高電平!“電阻同時起限流作用”!下拉同理!   2、上拉是對器件注入電流,下拉是輸出電流   3、弱強只是上拉電阻的阻值不同,沒有什麼嚴格區分   4、對於非

mint-ui 重新整理載入

export default { data() { return { list: [], allLoaded: true, bottomStatus: "", wrapperHeight: 0, topStatus: "",

React Native 一個小專案其中一些主要功能實現 (頂部導航欄(可滑動),網路解析,重新整理載入

//網路解析 import React, { Component } from "react"; import { View, Text, TouchableOpacity } from "react-native"; import RefreshListView, { Re

多條目載入 +重新整理載入

//*Afragment->XListView 重新整理 載入 public class AFragment extends Fragment implements XListView.IXListViewListener { private String