github:  https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh

<in.srain.cube.views.ptr.PtrFrameLayout
android:id="@+id/ptr"
android:layout_width="match_parent"
android:layout_height="match_parent"> <ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent"></ListView>
</in.srain.cube.views.ptr.PtrFrameLayout>
public class MainActivity extends AppCompatActivity {

    private List<String> list;
private ArrayAdapter<String> adapter;
private PtrFrameLayout ptrFrameLayout;
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
//设置刷新完毕,取消刷新动画
ptrFrameLayout.refreshComplete();
adapter.notifyDataSetChanged();
}
}; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ptrFrameLayout = (PtrFrameLayout) findViewById(R.id.ptr);
ListView listView = (ListView) findViewById(R.id.lv);
initData(); //1.默认经典头布局
// PtrClassicDefaultHeader defaultHeader = new PtrClassicDefaultHeader(this);
// 给Ptr添加头布局
// ptrFrameLayout.setHeaderView(defaultHeader);
// 使头布局的状态和刷新状态同步
// ptrFrameLayout.addPtrUIHandler(defaultHeader);
//2.模仿MD风格的头布局
// MaterialHeader materialHeader = new MaterialHeader(this);
//设置MD风格动画的颜色
// materialHeader.setColorSchemeColors(new int[]{Color.RED, Color.GREEN, Color.BLUE});
// ptrFrameLayout.setHeaderView(materialHeader);
// ptrFrameLayout.addPtrUIHandler(materialHeader);
//3.闪动文字的头布局
StoreHouseHeader storeHouseHeader = new StoreHouseHeader(this);
//设置加载数据时显示的字符串,文本只支持0-9,英文字符
storeHouseHeader.initWithString("999Loading...");
//设置头布局的背景颜色
storeHouseHeader.setBackgroundColor(Color.BLACK);
//设置文本的颜色
storeHouseHeader.setTextColor(Color.WHITE);
// storeHouseHeader.setDropHeight(300);
ptrFrameLayout.setHeaderView(storeHouseHeader);
ptrFrameLayout.addPtrUIHandler(storeHouseHeader);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
listView.setAdapter(adapter);
//设置下拉刷新监听
ptrFrameLayout.setPtrHandler(new PtrDefaultHandler() {
//在这里进行数据加载
@Override
public void onRefreshBegin(PtrFrameLayout frame) {
new Thread(new Runnable() {
@Override
public void run() {
list.add(, "王五");
SystemClock.sleep();
mHandler.sendEmptyMessage();
}
}).start();
}
});
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(MainActivity.this, "position:" + position, Toast.LENGTH_SHORT).show();
}
});
// ptrFrameLayout.setPtrHandler(new PtrHandler() {
//返回控件是否可以执行下拉刷新操作
// @Override
// public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) {
// return true;
// }
//
// @Override
// public void onRefreshBegin(PtrFrameLayout frame) {
//
// }
// });
} private void initData() {
list = new ArrayList<>();
for (int i = ; i < ; i++) {
list.add("lisi:" + i);
}
}
}

UltraPtr下拉刷新的更多相关文章

  1. Android下拉刷新控件android-Ultra-Pull-To-Refresh 使用

    一.gitHub地址及介绍 https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh android-Ultra-Pull-To-Refre ...

  2. 封装RecyclerViewAdapter实现RecyclerView下拉刷新上拉载入很多其它

    实现 关于下拉刷新使用的是github上的项目Ultra Pull To Refresh项目. gradle依赖例如以下: compile 'in.srain.cube:ultra-ptr:1.0.1 ...

  3. Android SwipeRefreshLayout 下拉刷新——Hi_博客 Android App 开发笔记

    以前写下拉刷新 感觉好费劲,要判断ListView是否滚到顶部,还要加载头布局,还要控制 头布局的状态,等等一大堆.感觉麻烦死了.今天学习了SwipeRefreshLayout 的用法,来分享一下,有 ...

  4. 带你实现开发者头条APP(五)--RecyclerView下拉刷新上拉加载

    title: 带你实现开发者头条APP(五)--RecyclerView下拉刷新上拉加载 tags: -RecyclerView,下拉刷新,上拉加载更多 grammar_cjkRuby: true - ...

  5. listview下拉刷新和上拉加载更多的多种实现方案

    listview经常结合下来刷新和上拉加载更多使用,本文总结了三种常用到的方案分别作出说明. 方案一:添加头布局和脚布局        android系统为listview提供了addfootview ...

  6. Xamarin. Android实现下拉刷新功能

    PS:发现文章被其他网站或者博客抓取后发表为原创了,给图片加了个水印 下拉刷新功能在安卓和iOS中非常常见,一般实现这样的功能都是直接使用第三方的库,网上能找到很多这样的开源库.然而在Xamarin. ...

  7. android使用PullToRefresh实现上拉加载和下拉刷新效果

    其实很早前就在博客园中也写过官方的下拉刷新控件SwipeRefreshLayout,但是这个控件仅仅支持下拉刷新,用起来还算可以.然而在我们实际开发应用中,很多地方都不止有下拉刷新,而且还有上拉加载的 ...

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

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

  9. 分页插件思想:pc加载更多功能和移动端下拉刷新加载数据

    感觉一个人玩lol也没意思了,玩会手机,看到这个下拉刷新功能就写了这个demo! 这个demo写的比较随意,咱不能当做插件使用,基本思想是没问题的,要用就自己封装吧! 直接上代码分析下吧! 布局: & ...

随机推荐

  1. POJ 2339

    #include <iostream> #include <algorithm> #define MAXN 205 using namespace std; char _m[M ...

  2. Netty核心概念(8)之Netty线程模型

    1.前言 第7节初步学习了一下Java原本的线程池是如何工作的,以及Future的为什么能够达到其效果,这些知识对于理解本章有很大的帮助,不了解的可以先看上一节. Netty为什么会高效?回答就是良好 ...

  3. Cloudera Manager安装之利用parcels方式安装3或4节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(CentOS6.5)(五)

    参考博客 Cloudera Manager安装之利用parcels方式安装单节点集群  Cloudera Manager安装之Cloudera Manager 5.3.X安装(三)(tar方式.rpm ...

  4. HUE配置文件hue.ini 的database模块详解(包含qlite、mysql、 psql、和oracle)(图文详解)(分HA集群和非HA集群)

    不多说,直接上干货! Hue配置文件里,提及到,提供有postgresql_psycopg2, mysql, sqlite3 or oracle. 注意:Hue本身用到的是sqlite3. 在哪里呢, ...

  5. jenkins-node-pipeline

    Jenkins node创建 1.jenkins搭建参考我的另外一篇文章:    http://www.cnblogs.com/cuishuai/p/7544775.html 2.搭建完成后登录,选择 ...

  6. oracle 执行的时候,显式输出结果!: set serveroutput on;

  7. b-树和b+树以及mysql索引

    b-树(m阶): 1.根节点至少有2个子节点; 2.中间节点包含k个子节点和k-1个元素,m/2 <= k <= m; 3.每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子 ...

  8. [转]Configure Network Drive Visible for SQL Server During Backup and Restore Using SSMS

    本文转自:https://mytechmantra.com/LearnSQLServer/Configure-Network-Drive-Visible-for-SQL-Server-During-B ...

  9. Python中类的属性的访问控制

    因为自己是做.NET的,之前有学习过Python,喜欢这门语言的很多特性,最近又不时看了一会儿,将自己的感受分享给大家,其中也难免会用C#的角度看Python的语法,主要还是讲下Python中类中对属 ...

  10. ActiveMQ Could not connect to broker URL

    javax.jms.JMSException: Could not connect to broker URL: http://localhost:8161/. Reason: java.io.IOE ...