PullToRefreshGridView

来源:互联网 发布:房屋外观设计简单软件 编辑:程序博客网 时间:2024/06/14 17:48
控件:
GridView
<com.handmark.pulltorefresh.library.PullToRefreshGridView    android:id="@+id/plv"    xmlns:ptr="http://schemas.android.com/apk/res-auto"    android:layout_height="match_parent"    android:layout_width="match_parent"    ptr:ptrDrawable="@drawable/default_ptr_flip"    ptr:ptrAnimationStyle="flip"    android:numColumns="2"    ptr:ptrHeaderBackground="#383838"    ptr:ptrHeaderTextColor="#FFFFFF"    ></com.handmark.pulltorefresh.library.PullToRefreshGridView>
private View view;private PullToRefreshGridView pulllist;int pid=1;BaseGrid base;List<MyDeteBean.ResultsBean> results=new ArrayList<>();private ILoadingLayout loadingLayoutProxy;@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {    view = inflater.inflate(R.layout.fragment2_layout,container,false);    pulllist = view.findViewById(R.id.plv);    return view;}@Overridepublic void onActivityCreated(@Nullable Bundle savedInstanceState) {    super.onActivityCreated(savedInstanceState);    sta();    pulllist.setMode(PullToRefreshBase.Mode.BOTH);    loadingLayoutProxy = pulllist.getLoadingLayoutProxy(true, false);    loadingLayoutProxy.setPullLabel("下拉刷新");    loadingLayoutProxy.setRefreshingLabel("正在拉");    loadingLayoutProxy.setReleaseLabel("放开刷新");    ILoadingLayout load = pulllist.getLoadingLayoutProxy(false, true);    load.setPullLabel("上拉刷新");    load.setRefreshingLabel("正在加载");    load.setReleaseLabel("放开刷新");    pulllist.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<GridView>() {        @Override        public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView) {            //下拉刷新....请求第一页的数据,清空之前的数据,然后再添加设置适配器           xrefalsh();        }        @Override        public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView) {            //上拉刷新/加载...加载的时候页数++           pid++;            sta();        }    });}public  void sta(){   String path="http://gank.io/api/data/Android/10/"+pid;    NetWorkUrl.newUrl(getActivity(), path, new NetPort() {        @Override        public void port(String json) {            Gson gson =new Gson();            MyDeteBean bean = gson.fromJson(json, MyDeteBean.class);            results.addAll(bean.getResults());            if(base==null){           base=new BaseGrid(getActivity(),results);            pulllist.setAdapter(base);            }else{                base.notifyDataSetChanged();            }            pulllist.onRefreshComplete();        }    });}public  void xrefalsh(){    pid--;    String path="http://gank.io/api/data/Android/10/"+pid;    NetWorkUrl.newUrl(getActivity(), path, new NetPort() {        @Override        public void port(String json) {            Gson gson =new Gson();            results.clear();            MyDeteBean bean = gson.fromJson(json, MyDeteBean.class);            results.addAll(0,bean.getResults());            if(base==null){                base=new BaseGrid(getActivity(),results);                pulllist.setAdapter(base);            }else{                base.notifyDataSetChanged();            }            pulllist.onRefreshComplete();           loadingLayoutProxy.setLastUpdatedLabel("上次刷新时间"+new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis()))+";");        }    });}

阅读全文
0 0