ptrFrameLayout实现炫酷的下拉刷新、上拉加载

compile 'com.chanven.lib:cptr:1.1.0'
//http://blog.csdn.net/evan_man/article/details/51570466


Header三种:经典(刷新加载)、材料(动画、或变色、或滚动)、店家(用点绘制的字,连续闪光)
github

这一类框架,对于任何内部子控件都可以刷新
效果一,经典效果:
PtrClassicFrameLayout继承于PtrFrameLayout,它是有动画效果的刷新类

<com.chanven.lib.cptr.PtrClassicFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main_ptrClassicFrameLayoutId"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:ptr_resistance="1.7"
app:ptr_ratio_of_header_height_to_refresh="1.2"
app:ptr_duration_to_close="300"
app:ptr_duration_to_close_header="2000"
app:ptr_keep_header_when_refresh="true"
app:ptr_pull_to_fresh="false"
tools:context="test.zt.com.ptrdemo.MainActivity">

这种刷新布局自带头布局,所以可以直接设置下拉刷新监听

自动刷新方法,auto。。。,内部自动执行下面那个蓝色的部分

public class MainActivity extends AppCompatActivity {

TextView textView;
PtrClassicFrameLayout ptrFrameLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = ((TextView) findViewById(R.id.activity_main_textViewId));
//刷新布局
ptrFrameLayout = ((PtrClassicFrameLayout) findViewById(R.id.activity_main_ptrClassicFrameLayoutId));

ptrFrameLayout.postDelayed(new Runnable() {
@Override
public void run() {
//执行调用下拉刷新监听
ptrFrameLayout.autoRefresh(true);
}
},200);

//设置下拉刷新监听
ptrFrameLayout.setPtrHandler(new PtrDefaultHandler() {
@Override
public void onRefreshBegin(final PtrFrameLayout frame) {
//清空数据源
textView.setText("");
//加载网络数据
frame.postDelayed(new Runnable() {
@Override
public void run() {
loadData();
//刷新完成隐藏刷新进度
frame.refreshComplete();
}
},2000);
}
});
}

private void loadData() {
textView.setText("MAIN1:"+System.currentTimeMillis());
}
}
效果二,也是经典效果,用PtrFL来做,比较基层的代码:
这种效果只能用PtrFrameLayout来做,不能用经典的,看图


布局文件中:注意已经是ptrFrameLayout了

<com.chanven.lib.cptr.PtrFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main2_ptrFrameLayoutId"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:ptr_resistance="1.7"
app:ptr_ratio_of_header_height_to_refresh="1.2"
app:ptr_duration_to_close="300"
app:ptr_duration_to_close_header="2000"
app:ptr_keep_header_when_refresh="true"
app:ptr_pull_to_fresh="false"
tools:context="test.zt.com.ptrdemo.Main2Activity">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值