有很多控件都可以下拉刷新如,ListView,ExpandableListView,GridView,ScrollView,ViewPager,WebView等,

其中最常见的是ListView。本文以实现ListView为例,其它类似。

使用Android-PullToRefresh

  地址:

    https://github.com/chrisbanes/Android-PullToRefresh  

  优点:

    里面有很多示例代码。使用简单。它里面含的PullToRefresh如下:

  缺点:

    样式不可定义麻烦,如 PullToRefreshListview 只显示一张图片,不是 [下箭头---上箭头---刷新] 那类常见的样式,更改成那样很麻烦,而是PullToRefreshScrollView是[下箭头---上箭头---刷新] 那类。

   

  下拉上拉 图标和文字 位置改动是在PullToRefresh源代码中改的即:PullToRefreshListView.handleStyledAttributes 中lp的Gravity改为CENTER_VERTICAL

如果想要改动图标和文字的距离和布局 在这library项目下这两个文件改

  • pull_to_refresh_header_horizontal.xml
  • pull_to_refresh_header_vertical.xml

PullToRefreshList示例 :

  下面以PullToRefreshListView为例:

  a,在layout中添加 pulltorefreshview ,设置其属性

 <com.handmark.pulltorefresh.library.PullToRefreshListView
android:id="@+id/pull_refresh_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:cacheColorHint="#00000000"
android:divider="#19000000"
android:dividerHeight="0.7dp"
android:fadingEdge="none"
android:fastScrollEnabled="false"
android:footerDividersEnabled="false"
android:gravity="center_horizontal"
android:headerDividersEnabled="false"
android:smoothScrollbar="true" />

  b,在代码中 findviewbyid,设置参数

   void initPullRefreshList(){
mPullRefreshListView = (PullToRefreshListView) tabHost.findViewById(R.id.pull_refresh_list);
mPullRefreshListView.setAdapter(adapter);
mPullRefreshListView.setPullLabel("pull");
mPullRefreshListView.setReleaseLabel("release");
mPullRefreshListView.setRefreshingLabel("refreshing");
mPullRefreshListView.setLoadingDrawable(context.getResources().getDrawable(R.drawable.pgrsb));
mPullRefreshListView.setOnRefreshListener(new PullToRefreshListView.OnRefreshListener<ListView>() {
@Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
RefreshTask t = new RefreshTask();
t.execute();
}
});
}

  c,注意上面代码中的RefreshTask,自定义它,然后现实它。

   private class RefreshTask extends AsyncTask<Void, Void, Void>{
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
addSomeTableWeixinItem();
mPullRefreshListView.onRefreshComplete();
}
@Override
protected Void doInBackground(Void... params) {
try {
Thread.sleep();
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
} }

  注意  mPullRefreshListView.onRefreshComplete(); 它是关闭显示pulltorefreshview.

最终运行如下:

  

下拉刷新控件(1)PullToRefreshList示例的更多相关文章

  1. android官方下拉刷新控件SwipeRefreshLayout的使用

    可能开发安卓的人大多数都用过很多下拉刷新的开源组件,但是今天用了官方v4支持包的SwipeRefreshLayout觉得效果也蛮不错的,特拿出来分享. 简介:SwipeRefreshLayout组件只 ...

  2. [Android]下拉刷新控件RefreshableView的实现

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4172483.html 需求:自定义一个ViewGroup,实现 ...

  3. android SwipeRefreshLayout google官方下拉刷新控件

    下拉刷新功能之前一直使用的是XlistView很方便我前面的博客有介绍 SwipeRefreshLayout是google官方推出的下拉刷新控件使用方法也比较简单 今天就来使用下SwipeRefres ...

  4. Android PullToRefresh下拉刷新控件的简单使用

    PullToRefresh这个开源库早就听说了,不过一直没用过.作为一个经典的的开源库,我觉得还是有必要认识一下. 打开github上的网址:https://github.com/chrisbanes ...

  5. Android SwipeRefreshLayout 官方下拉刷新控件介绍

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24521483 下面App基本都有下拉刷新的功能,以前基本都使用XListView ...

  6. Google SwipeRefreshLayout(Goolge官方下拉刷新控件)尝鲜

    前天Google官方终于出了Android刷新控件——SwipeRefreshLayout. 使用前先需要将android.support.v4.jar升级到19.1.升级后,可能会出现SDK版本与A ...

  7. 上拉加载下拉刷新控件WaterRefreshLoadMoreView

    上拉加载下拉刷新控件WaterRefreshLoadMoreView 效果: 源码: // // SRSlimeView // @author SR // Modified by JunHan on ...

  8. 官方下拉刷新控件SwipeRefreshLayout的使用

    今天看博客,发现有了这个下拉刷新的控件,效果看上去还蛮好的,于是我也想研究的是使用一下,写个demo.其实使用很简单的,但就是为了能使用这个新组建我下了好久的更新,后来还是直接去官网下载最新的ADT得 ...

  9. Android仿苹果版QQ下拉刷新实现(一) ——打造简单平滑的通用下拉刷新控件

    前言: 忙完了结婚乐APP的开发,终于可以花一定的时间放在博客上了.好了,废话不多说,今天我们要带来的效果是苹果版本的QQ下拉刷新.首先看一下目标效果以及demo效果:      因为此效果实现的步骤 ...

随机推荐

  1. frequentism-and-bayesianism-chs-ii

    frequentism-and-bayesianism-chs-ii 频率主义 vs 贝叶斯主义 II:当结果不同时   这个notebook出自Pythonic Perambulations的博文  ...

  2. CocoaPods 使用手册

    CocoaPods 使用手册 CocoaPods 使用手册                                                                        ...

  3. set gameobject Icons by Script

    有很多时候我们需要在编辑器查看一个Gameobject的移动,有些人采用Gizoms类,可是如果不想用,可以使用U3D内置的Icon类. 但是如果想在脚本中设置而不是通过手动选择呢? Google之, ...

  4. Sqli-labs less 16

    Less-16 本关我们的处理方法和less15是一样的,同样的使用延时注入的方法进行解决.这里直接从源代码中看到对id进行 ("id")的处理.(请自行测试) 提交的payloa ...

  5. HDU 1403 Longest Common Substring(后缀数组,最长公共子串)

    hdu题目 poj题目 参考了 罗穗骞的论文<后缀数组——处理字符串的有力工具> 题意:求两个序列的最长公共子串 思路:后缀数组经典题目之一(模版题) //后缀数组sa:将s的n个后缀从小 ...

  6. HDU 2671 Can't be easier(数学题,点关于直线对称)

    题目 //数学题//直线 y = k * x + b//直线 ax+by+c=0; 点 (x0,y0); 点到直线距离 d = (ax0+by0+c)/sqrt(a^2+b^2) /********* ...

  7. HDU 1163 Eddy's digital Roots(模)

    HDU 1163 题意简单,求n^n的(1)各数位的和,一旦和大于9,和再重复步骤(1),直到和小于10. //方法一:就是求模9的余数嘛! (228) leizh007 2012-03-26 21: ...

  8. POJ 1742

    Coins Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 27580   Accepted: 9335 Descriptio ...

  9. UVA 11795

    B Mega Man’s Missions Input Standard Input Output Standard Output Mega Man is off to save the world ...

  10. 华为上机:求2的N次幂的值

    求2的N次幂的值 描述: 求2的N次幂的值(N最大不超过31,用位运算计算,结果以十六进制进行显示). 运行时间限制: 无限制 内存限制: 无限制 输入: 数字N 输出: 2的N次方(16进制,需要按 ...