首先要在build.gradle文件中添加库
compile 'com.github.userswlwork:pull-to-refresh:1.0.0'
然后就可以在XML布局文件中找到控件
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.zhanhaoxuan.pulltorefresh_demo.MainActivity">
<com.handmark.pulltorefresh.library.PullToRefreshListView android:id="@+id/pull_list" android:layout_width="match_parent" android:layout_height="match_parent"></com.handmark.pulltorefresh.library.PullToRefreshListView> ptr:ptrDrawable="@drawable/default_ptr_flip" ptr:ptrAnimationStyle="flip" ptr:ptrHeaderBackground="#383838" ptr:ptrHeaderTextColor="#FFFFFF" </RelativeLayout>
然后在MainActivity中找到控件进行初始化。+++++++++++++++++++++++++++++++++
public class Fragment4 extends Fragment { private PullToRefreshListView pull_list; private int opentype=1; private int pageindex=1; private String urlpart="https://api.tianapi.com/wxnew/?key=038f17ee5008aca9fc4015a094d79153&num=10&page="; private String url=urlpart+pageindex; private List<Result.NewslistBean> newslist=new ArrayList<>(); private Myadapter adapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View v = inflater.inflate(R.layout.graf4, null); pull_list = v.findViewById(R.id.pull_list); return v; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { //设置模式 pull_list.setMode(PullToRefreshBase.Mode.BOTH); //设置头尾部局的文字 ILoadingLayout loadingLayoutProxy = pull_list.getLoadingLayoutProxy(true, false); loadingLayoutProxy.setRefreshingLabel("正在刷新"); loadingLayoutProxy.setReleaseLabel("放开刷新");//下拉到一定的距离,显示的文字 loadingLayoutProxy.setPullLabel("下拉刷新");//刚下拉时,显示的文字 ILoadingLayout footerLayout = pull_list.getLoadingLayoutProxy(false, true); footerLayout.setRefreshingLabel("正在加载");//正在刷新 footerLayout.setReleaseLabel("放开加载");//下拉到一定的距离,显示的文字 footerLayout.setPullLabel("上拉加载");//刚下拉时,显示的文字 requestData(); //添加监听 pull_list.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { opentype=1; //刷新 requestData(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { //加载 opentype=2; requestData(); } }); super.onActivityCreated(savedInstanceState); } //请求网络数据 private void requestData() { NetTask netTask=new NetTask(new NetTask.IcallBack() { @Override public void getJsonData(String jsonStr) { Gson gson=new Gson(); Result result = gson.fromJson(jsonStr, Result.class); if (opentype==1){ newslist.clear(); } newslist.addAll(result.getNewslist()); setadapter(); pull_list.onRefreshComplete(); } }); netTask.execute(url); } //加载适配器 public void setadapter(){ if (adapter==null){ adapter = new Myadapter(getActivity(),newslist); pull_list.setAdapter(adapter); }else{ adapter.notifyDataSetChanged(); } } }