PullToRefresh概念:
开发者可以使用 PullToRefresh 对各种控件实现下拉刷新或者上拉加载以及可以自定义刷新和加载部分的视图。
第一步:导入依赖
compile 'com.github.userswlwork:pull-to-refresh:1.0.0'
第二步:加入控件
<com.handmark.pulltorefresh.library.PullToRefreshListView
android:id="@+id/ptlv"
android:layout_width="match_parent"
android:layout_height="match_parent"
> </com.handmark.pulltorefresh.library.PullToRefreshListView>
第三步:写入数据
给list适配数据
第四步:监听方法
/**
* 下拉刷新时会回调此方法
* ptlv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() { }
*/
/**
* 上拉 加滑动到底部的监听器
* ptlv.setOnLastItemVisibleListener(new PullToRefreshBase.OnLastItemVisibleListener() { }
*/
/**
* 加滑动到底部的监听器
*/
private void ptlvlastInfo() {
ptlv.setOnLastItemVisibleListener(new PullToRefreshBase.OnLastItemVisibleListener() {
@Override
public void onLastItemVisible() {
new Thread() {
@Override
public void run() {
super.run();
final String newPaths = "http://api.expoon.com/AppNews/getNewsList/type/1/p/" + b;
b++;
// 请求数据
final String newhttpcons = httpcon(newPaths);
runOnUiThread(new Runnable() {
@Override
public void run() {
Bean bean = gson.fromJson(newhttpcons, Bean.class);
List<Bean.DataBean> data_list = bean.getData();
list.addAll(data_list);
Log.d("MainActivity", "data_list:" + "-----" + data_list);
adapter.notifyDataSetChanged();
}
});
}
}.start();
Toast.makeText(MainActivity.this, "到底了", Toast.LENGTH_SHORT).show();
}
});
}
private void ptlvInfo() {
/**
* 下拉刷新时会回调此方法
*/
ptlv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
@Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
final String newPath = "http://api.expoon.com/AppNews/getNewsList/type/1/p/" + a;
a++;
new Thread() {
@Override
public void run() {
super.run();
// 请求数据
final String newhttpcon = httpcon(newPath);
runOnUiThread(new Runnable() {
@Override
public void run() {
Bean bean = gson.fromJson(newhttpcon, Bean.class);
List<Bean.DataBean> data_list = bean.getData();
list.addAll(0,data_list);
Log.d("MainActivity", "data_list:" + "-----" + data_list);
// 刷新适配器
adapter.notifyDataSetChanged();
// 关闭刷新
ptlv.onRefreshComplete();
}
});
}
}.start();
}
});