android ListView上拉加载更多 下拉刷新功能实现(采用pull-to-refresh)
2014-01-14 13:45
1256 查看
Android实现上拉加载更多功能以及下拉刷新功能,
采用了目前比较火的PullToRefresh,他是目前实现比较好的下拉刷新的类库。
目前他支持的控件有:ListView, ExpandableListView,GridView,WebView等。
下载地址:https://github.com/chrisbanes/Android-PullToRefresh
首先第一步当然是导入libriay到咱们的项目了,具体导入方式,这里不再赘述。
下面是个例子采用的是ListView,当然其余的和这个类似
1、布局文件activity_main.xml
2、要实现下拉刷新的功能很简单,只需要实现OnRefreshListener的OnRefresh方法即可。这里说一下如何实现上拉和下拉分别执行不同的操作。
这里参考了http://blog.csdn.net/ueryueryuery/article/details/17440465
原理是:根据下拉和上拉显示的布局的可见状态类区分上拉还是下拉,然后执行相应操作。
在PullToRefresh的类库的com.handmark.pulltorefresh.library包下,打开PullToRefreshBase.java,在这个类的最后面添加如下代码:
3、在Activity的代码如下:
如上代码所示,在OnRefresh的实现代码中,用以区分上拉还是下拉,关键代码如下:
至此,运行项目,可以得到演示结果了
原文地址 : http://www.dutycode.com/post-13.html
我的博客:http://www.dutycode.com
参考网址:http://blog.csdn.net/ueryueryuery/article/details/17440465
采用了目前比较火的PullToRefresh,他是目前实现比较好的下拉刷新的类库。
目前他支持的控件有:ListView, ExpandableListView,GridView,WebView等。
下载地址:https://github.com/chrisbanes/Android-PullToRefresh
首先第一步当然是导入libriay到咱们的项目了,具体导入方式,这里不再赘述。
下面是个例子采用的是ListView,当然其余的和这个类似
1、布局文件activity_main.xml
01 | < RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android" |
02 | xmlns:tools = "http://schemas.android.com/tools" |
03 | android:layout_width = "match_parent" |
04 | android:layout_height = "match_parent" |
05 | tools:context = ".MainActivity" > |
06 |
07 | < com.handmark.pulltorefresh.library.PullToRefreshListView |
08 | android:id = "@+id/pull_refresh_list" |
09 | android:layout_width = "fill_parent" |
10 | android:layout_height = "fill_parent" /> |
11 | </ RelativeLayout > |
这里参考了http://blog.csdn.net/ueryueryuery/article/details/17440465
原理是:根据下拉和上拉显示的布局的可见状态类区分上拉还是下拉,然后执行相应操作。
在PullToRefresh的类库的com.handmark.pulltorefresh.library包下,打开PullToRefreshBase.java,在这个类的最后面添加如下代码:
1 | public boolean isHeaderShown() { |
2 | return getHeaderLayout().isShown(); |
3 | } |
4 |
5 | public boolean isFooterShown() { |
6 | return getFooterLayout().isShown(); |
7 | } |
01 | public class MainActivity extends ListActivity { |
02 |
03 | private PullToRefreshListView mPullToRefreshListView; |
04 |
05 | private LinkedList<String> mItemList; |
06 | private ArrayAdapter<String> adapter; |
07 |
08 | private Context context; |
09 | @Override |
10 | protected void onCreate(Bundle savedInstanceState) { |
11 | super .onCreate(savedInstanceState); |
12 | setContentView(R.layout.activity_main); |
13 | context = this ; |
14 | initData(); |
15 |
16 | adapter = new ArrayAdapter<String>( this , android.R.layout.simple_list_item_1, mItemList); |
17 |
18 | //初始化控件 |
19 | mPullToRefreshListView = (PullToRefreshListView)findViewById(R.id.pull_refresh_list); |
20 | ListView mListView = mPullToRefreshListView.getRefreshableView(); |
21 | mListView.setAdapter(adapter); |
22 |
23 | //设置pull-to-refresh模式为Mode.Both |
24 | mPullToRefreshListView.setMode(Mode.BOTH); |
25 |
26 | //设置上拉下拉事件 |
27 | mPullToRefreshListView.setOnRefreshListener( new OnRefreshListener<ListView>() { |
28 |
29 | @Override |
30 | public void onRefresh(PullToRefreshBase<ListView> refreshView) { |
31 |
32 | if (refreshView.isHeaderShown()){ |
33 | Toast.makeText(context, "下拉刷新" ,Toast.LENGTH_SHORT).show(); |
34 | //下拉刷新 业务代码 |
35 | } else { |
36 | Toast.makeText(context, "上拉加载更多" ,Toast.LENGTH_SHORT).show(); |
37 | //上拉加载更多 业务代码 |
38 | } |
39 |
40 | } |
41 | }); |
42 |
43 | } |
44 |
45 |
46 | private void initData(){ |
47 | //初始化数据 |
48 | mItemList = new LinkedList<String>(); |
49 | mItemList.addAll(Arrays.asList(data)); |
50 |
51 | } |
52 |
53 | private String[] data = new String[]{ "data1" , "data2" , "data3" , "data4" , "data5" , "data6" , |
54 | "data1" , "data2" , "data3" , "data4" , "data5" , "data6" }; |
55 | } |
1 | if (refreshView.isHeaderShown()){ |
2 | Toast.makeText(context, "下拉刷新" ,Toast.LENGTH_SHORT).show(); |
3 | //下拉刷新 业务代码 |
4 | } else { |
5 | Toast.makeText(context, "上拉加载更多" ,Toast.LENGTH_SHORT).show(); |
6 | //上拉加载更多 业务代码 |
7 | } |
原文地址 : http://www.dutycode.com/post-13.html
我的博客:http://www.dutycode.com
参考网址:http://blog.csdn.net/ueryueryuery/article/details/17440465
相关文章推荐
- android ListView上拉加载更多 下拉刷新功能实现(采用pull-to-refresh)
- android ListView上拉加载更多 下拉刷新功能实现(采用pull-to-refresh)
- 采用github上的开源项目Android-PullToRefresh实现ListView的下拉刷新和上拉加载
- GridView基于pulltorefresh实现下拉刷新 上拉加载更多功能
- 【Android开发笔记】pulltorefresh实现下拉刷新和上拉加载更多
- Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向
- Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向
- Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向 推荐
- android 使用PullToRefresh实现下拉刷新和上拉加载更多
- 使用SwipeRefreshLayout和自定义的PullToReFreshListView实现下拉刷新和上拉加载更多
- PullToRefresh实现下拉刷新和上拉加载更多的ListView
- Android中PullToRefreshListView的下拉刷新,下拉加载的实现
- Android 使用PullToRefresh实现下拉刷新和上拉加载(ExpandableListView)
- PullToRefreshListView实现下拉刷新和上拉加载更多
- [置顶] Android-PullToRefresh上拉下拉刷新加载更多,以及gridview刷新功能的Library下载地址
- PullToRefreshListView的下拉刷新上拉加载更多问题
- android-Ultra-Pull-To-Refresh既可以实现下拉刷新又可以上拉加载的国人写的优秀库
- Android-PullToRefresh:下拉刷新和加载更多
- Android实现上拉加载更多以及下拉刷新功能(ListView)
- pulltorefresh(一)使用介绍,实现下拉刷新上拉加载更多