1. 程式人生 > >Android 下拉重新整理

Android 下拉重新整理

匯入PullToRefresh
1.1 修改library的build.gradle中的sdk版本

  • //修改前
  • compileSdkVersion 16
  • buildToolsVersion “27.0.3”
  •   defaultConfig {
  •     minSdkVersion 4
  •     targetSdkVersion 4
  •   }
  •  
  •   //修改後
  •   compileSdkVersion 27
  •   buildToolsVersion "27.0.3"
  •   defaultConfig {
  •     minSdkVersion 15
  •     targetSdkVersion 27
  •   }

1.2 Clear Project後會報如下錯誤,修改原始碼:“PullToRefreshWebView”
錯誤: 找不到符號
符號: 方法 floor(float)
位置: 類 FloatMath

  FloatMath.floor -> Math.floor
1
1.3 選中自己的工程,例如:“app”然後滑鼠右鍵“open Moduel settings”匯入庫

1.4 修改layout佈局檔案,新增PullToRefresh控制元件替換ListView即可

第三方控制元件:上拉載入、下拉重新整理控制元件
2.1 匯入第三方外掛庫
Android-PullToRefresh-master.zip
2.2 在佈局檔案中使用第三方外掛
com.handmark.pulltorefresh.library.PullToRefreshListView

2.3 自定義介面卡(BaseAdapter)提供資料

2.4 非同步任務查詢資料(AsyncTask)
2.4.1 AsyncTask定義了三種泛型型別 Params,Progress和Result。
Params 啟動任務執行的輸入引數,比如HTTP請求的URL。
Progress 後臺任務執行的百分比。
Result 後臺執行任務最終返回的結果,比如String
2.4.2 非同步載入資料最少要重寫以下這兩個方法
doInBackground(Params…) 後臺執行,比較耗時的操作都可以放在這裡
onPostExecute(Result) 相當於Handler 處理UI的方式,在這裡面可以使用在doInBackground 得到的結果處理操作UI
–注:此方法中再通知介面卡和控制元件
myBaseAdapter.notifyDataSetChanged();// 通知介面卡資料已改變
plv_main_plv1.onRefreshComplete();// 通知控制元件資料已經載入完畢

2.5 給PullToRefreshListView設定相關屬性
plv_main_1.setMode(Mode.BOTH);// 設定重新整理模式
Mode.BOTH:同時支援上拉下拉
Mode.PULL_FROM_START:只支援下拉Pulling Down
Mode.PULL_FROM_END:只支援上拉Pulling Up

  plv_main_1.getLoadingLayoutProxy().setPullLabel("上拉重新整理...");// 剛下拉時,顯示的提
  plv_main_1.getLoadingLayoutProxy().setRefreshingLabel("正在載入...");// 重新整理時
  plv_main_1.getLoadingLayoutProxy().setReleaseLabel("放開重新整理...");// 下來達到一定距離時,顯示的提示 
  
  github、碼雲
  核心:
  1、新建Android的project
  2、將第三方工程匯入到project中
  3、由於現有的開發module的sdk與匯入的庫的sdk版本不一樣,所以需要修改
  4、在開發的module中引入庫依賴
  5、啟動module報錯的原因,jdk高版本移除了些東西。
  
  
  6、改變listview為PullToRefreshListView 
  7、載入資料來源    new Mytask / doInBackground
  8、給PullToRefreshListView設定相關屬性,給下拉元件新增監聽
  9、回撥函式中,通知介面卡資料載入完畢    onPostExecute