您的位置:首页 > 其它

PullToRefreshScrollView的使用

2017-10-24 18:49 579 查看
准备工作:
第一步:导入pullToRefresh的工程,注意需要16版本的sdk,与19版本的构建工具(需要连网下载)
第二步:将工程作为依赖库添加到自己的工程中

使用步骤:
第一步:在布局文件中添加PullToRefreshScrollView组件

<!--
ptr:ptrDrawable="@drawable/default_ptr_flip":刷新时显示的图片
ptr:ptrAnimationStyle="flip":刷新的图片以何种方式显示出来
ptr:ptrHeaderBackground="#383838":刷新时头部的布局
ptr:ptrHeaderTextColor="#FFFFFF":刷新时头部字体的颜色

还需要添加以下的命名空间
xmlns:ptr="http://schemas.android.com/apk/res-auto"

-->

<com.handmark.pulltorefresh.library.PullToRefreshScrollView
android:id="@+id/refresh_scroll_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
ptr:ptrAnimationStyle="flip"
ptr:ptrDrawable="@drawable/default_ptr_flip"
ptr:ptrHeaderBackground="#383838"
ptr:ptrHeaderTextColor="#FFFFFF">

<!--在scrollView中添加组件 viewPager和ListView
注意:在scrollView中只能有一个子孩子-->

<linearLayout>
<ViewPager></viewPager>
<ListView></ListView>
</linearLayout>

</com.handmark.pulltorefresh.library.PullToRefreshScrollView>

第二步:查找组件,并对PullToRefreshScrollView进行初使化

//查找组件
PullToRefreshScrollView   rsv = (PullToRefreshScrollView) findViewById(R.id.refresh_scroll_view);

//进行初使化  (1.设置模式 2.通过getLoadingLayoutProxy方法设置header与footer的刷新显示文字 3.设置监听事件)
private void intRefreshScrollView() {
//1.设置模式
rsv.setMode(PullToRefreshBase.Mode.BOTH);

//2.通过调用getLoadingLayoutProxy方法,设置下拉刷新状况布局中显示的文字 ,第一个参数为true,代表下拉刷新
ILoadingLayout headLables = rsv.getLoadingLayoutProxy(true, false);
headLables.setPullLabel("下拉刷新");
headLables.setRefreshingLabel("正在刷新");
headLables.setReleaseLabel("松开刷新");

//2.设置上拉加载底部视图中显示的文字,第一个参数为false,代表上拉加载更多
ILoadingLayout footerLables = rsv.getLoadingLayoutProxy(false, true);
footerLables.setPullLabel("上拉加载");
footerLables.setRefreshingLabel("正在载入...");
footerLables.setReleaseLabel("松开加载更多");

//3.设置监听事件
rsv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ScrollView> refreshView) {
addToTop();//请求网络数据,并更新listview组件
refreshComplete();//数据加载完成后,关闭header,footer
}

@Override
public void onPullUpToRefresh(PullToRefreshBase<ScrollView> refreshView) {
addToBottom()//请求网络数据,并更新listview组件
refreshComplete();//数据加载完成后,关闭header,footer
}
});

}
/**
* 刷新完成时关闭
*/
public void refreshComplete(){
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
rsv.onRefreshComplete();
}
},1000);
}


8dee
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: