成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

滾動到底部加載更多及下拉刷新listview的使用

移動開發 Android
該ListView優點包括:a. 可自定義下拉響應事件(如下拉刷新) b.可自定義滾動到底部響應的事件(如滑動到底部加載更多) c.可自定義豐富的樣式 d.高效(若下拉樣式關閉不會加載其布局,同listView效率一致) e. 豐富的設置。

本文主要介紹可同時實現下拉刷新及滑動到底部加載更多的ListView的使用。

該ListView優點包括:a. 可自定義下拉響應事件(如下拉刷新)  b.可自定義滾動到底部響應的事件(如滑動到底部加載更多)  c.可自定義豐富的樣式  d.高效(若下拉樣式關閉不會加載其布局,同listView效率一致) e. 豐富的設置。

本文可運行APK地址可見TrineaAndroidDemo.apk,可運行代碼地址可見DropDownListViewDemo@Google Code,效果圖如下:

drop Down To Refresh And Load More ListView

1、引入公共庫

引入TrineaAndroidCommon@GoogleCode作為你項目的library,或是自己抽取其中的DropDownListView部分使用

2、在layout中定義

將布局中的ListView標簽換成cn.trinea.android.common.view.DropDownListView標簽

并加上自定義屬性的命名空間xmlns:listViewAttr="http://schemas.android.com/apk/res/cn.trinea.android.demo",其中cn.trinea.android.demo需要用自己的包名替換。如何自定義屬性及其命名空間可見本文***。xml代碼如下:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     xmlns:listViewAttr="http://schemas.android.com/apk/res/cn.trinea.android.demo" 
  4.     android:layout_width="match_parent" 
  5.     android:layout_height="match_parent" > 
  6.     <cn.trinea.android.common.view.DropDownListView 
  7.         android:id="@+id/list_view" 
  8.         android:layout_width="match_parent" 
  9.         android:layout_height="wrap_content" 
  10.         android:drawSelectorOnTop="false" 
  11.         android:paddingBottom="@dimen/dp_40" 
  12.         listViewAttr:isDropDownStyle="true" 
  13.         listViewAttr:isOnBottomStyle="true" 
  14.         listViewAttr:isAutoLoadOnBottom="true" /> 
  15. </RelativeLayout> 

DropDownListView自定義了三個boolean屬性

  1. <declare-styleable name="drop_down_list_attr"
  2.     <attr name="isDropDownStyle" format="boolean" /> 
  3.     <attr name="isOnBottomStyle" format="boolean" /> 
  4.     <attr name="isAutoLoadOnBottom" format="boolean" /> 
  5. </declare-styleable> 

isDropDownStyle表示是否允許下拉樣式,java代碼中可自定義下拉listener,表示需要完成的任務

isOnBottomStyle表示是否允許底部樣式,java代碼中可自定義滾動到底部的listener,表示需要完成的任務

isAutoLoadOnBottom表示是否允許滾動到底部時自動執行對應listener,僅在isOnBottomStyle為true時有效

PS:如果isDropDownStyle或isOnBottomStyle為false,并不會加載對應的布局,所以性能同ListView一樣

3、在Java類中調用

通過setOnDropDownListener設置下拉的事件,不過需要在事件結束時手動調用onDropDownComplete恢復狀態

通過setOnBottomListener設置滾動到底部的事件,不過需要在事件結束時手動調用onBottomComplete恢復狀態,示例代碼如下:

  1. /** 
  2.  * DropDownListViewDemo 
  3.  *  
  4.  * @author Trinea 2013-6-1 
  5.  */ 
  6. public class DropDownListViewDemo extends BaseActivity { 
  7.     private LinkedList<String>   listItems = null
  8.     private DropDownListView     listView  = null
  9.     private ArrayAdapter<String> adapter; 
  10.     private String[]             mStrings  = { "Aaaaaa""Bbbbbb""Cccccc""Dddddd""Eeeeee"
  11.             "Ffffff""Gggggg""Hhhhhh""Iiiiii""Jjjjjj""Kkkkkk""Llllll""Mmmmmm"
  12.             "Nnnnnn",                     }; 
  13.     @Override 
  14.     public void onCreate(Bundle savedInstanceState) { 
  15.         super.onCreate(savedInstanceState, R.layout.drop_down_listview_demo); 
  16.         listView = (DropDownListView)findViewById(R.id.list_view); 
  17.         // set drop down listener 
  18.         listView.setOnDropDownListener(new OnDropDownListener() { 
  19.             @Override 
  20.             public void onDropDown() { 
  21.                 new GetDataTask(true).execute(); 
  22.             } 
  23.         }); 
  24.         // set on bottom listener 
  25.         listView.setOnBottomListener(new OnClickListener() { 
  26.             @Override 
  27.             public void onClick(View v) { 
  28.                 new GetDataTask(false).execute(); 
  29.             } 
  30.         }); 
  31.         listItems = new LinkedList<String>(); 
  32.         listItems.addAll(Arrays.asList(mStrings)); 
  33.         adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listItems); 
  34.         listView.setAdapter(adapter); 
  35.     } 
  36.     private class GetDataTask extends AsyncTask<Void, Void, String[]> { 
  37.         private boolean isDropDown; 
  38.         public GetDataTask(boolean isDropDown){ 
  39.             this.isDropDown = isDropDown; 
  40.         } 
  41.         @Override 
  42.         protected String[] doInBackground(Void... params) { 
  43.             try { 
  44.                 Thread.sleep(1000); 
  45.             } catch (InterruptedException e) { 
  46.                 ; 
  47.             } 
  48.             return mStrings; 
  49.         } 
  50.         @Override 
  51.         protected void onPostExecute(String[] result) { 
  52.             if (isDropDown) { 
  53.                 listItems.addFirst("Added after drop down"); 
  54.                 adapter.notifyDataSetChanged(); 
  55.  
  56.                 // should call onDropDownComplete function of DropDownListView at end of drop down complete. 
  57.                 SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd HH:mm:ss"); 
  58.                listView.onDropDownComplete(getString(R.string.update_at) 
  59.                                             + dateFormat.format(new Date())); 
  60.             } else { 
  61.                 listItems.add("Added after on bottom"); 
  62.                 adapter.notifyDataSetChanged(); 
  63.  
  64.                 // should call onBottomComplete function of DropDownListView at end of on bottom complete. 
  65.                 listView.onBottomComplete(); 
  66.             } 
  67.             super.onPostExecute(result); 
  68.         } 
  69.     } 

4、高級接口設置

5、樣式設置(自定義header和footer信息)

見原文:滾動到底部加載更多及下拉刷新listview的使用

責任編輯:閆佳明 來源: oschina
相關推薦

2021-12-01 10:02:57

鴻蒙HarmonyOS應用

2016-08-05 17:01:09

AndroidRecyclerVie下拉刷新

2015-03-23 18:11:39

UITableViewswift下拉刷新

2013-04-02 13:04:07

ListView平滑滾

2021-09-02 10:00:42

鴻蒙HarmonyOS應用

2017-10-25 15:03:52

網頁瀏覽器Jquery

2016-12-26 15:39:35

Android下拉刷新頭部廣告位

2013-07-10 10:21:22

Android Lis

2024-07-02 10:00:55

2011-05-31 11:05:16

ListView 數據

2023-11-22 07:47:34

2015-10-22 10:59:13

ListViewItem刷新

2018-07-02 12:49:33

刷新控件動畫

2017-11-08 14:34:20

圖片fresco程序員

2015-05-13 09:36:18

js模擬手機下拉刷新

2015-04-22 10:57:22

androidSwipeRefres

2011-03-14 13:10:43

jQueryscroll滾動

2023-02-23 13:43:54

Linux操作系統

2011-05-30 15:58:29

Android ListView 數據

2012-03-28 22:16:54

蘋果
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 搞av.com| 国产乱码精品1区2区3区 | 国产一级电影在线 | 国产精品一区一区三区 | 婷婷开心激情综合五月天 | 操人视频在线观看 | 一级美国黄色片 | 羞羞视频在线免费 | 亚洲精品国产精品国自产在线 | 亚洲一区视频在线 | 国产婷婷| 欧美一级片在线观看 | 国产高清视频一区 | 亚洲精品成人av | 亚洲网一区 | 午夜伦4480yy私人影院 | 国产精品免费视频一区 | 亚洲国产aⅴ成人精品无吗 亚洲精品久久久一区二区三区 | 成人免费黄色片 | 久久69精品久久久久久久电影好 | 免费成人在线网站 | 国产成人精品一区 | 国产精品亚洲一区二区三区在线 | 午夜精品一区二区三区在线视频 | 久久久做 | 欧美色综合天天久久综合精品 | 九九热国产精品视频 | 最新中文字幕在线 | 逼逼网| av网站在线看 | 中文字幕成人av | 奇米超碰在线 | 国产96在线 | 久久久精品国产 | 国产在线精品区 | 国产欧美一区二区在线观看 | 毛片a级| 秋霞电影院午夜伦 | 成人精品一区 | 天天拍夜夜爽 | 亚洲精品免费在线 |