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