SmartRefreshLayout+CommonAdapter打造上拉加载下拉刷新界面

来源:互联网 发布:mac see sheer真人试色 编辑:程序博客网 时间:2024/06/01 07:56

我之前的文章提及过万能适配器

万能适配器(一)

万能适配器(二)

我们当时提及过这个万能适配器要是能搭配刷新库一起使用就更好了,现在最热的刷新库要属SmartRefreshLayout了,附上SmartRefreshLayout的github地址

SmartRefreshLayout github

前期准备已经做完了,现在要看下我们的效果

这里写图片描述

1 导入三方库

compile 'com.zhy:base-adapter:3.0.3'    //万能适配器仅针对Listviewcompile 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.2-alpha-3'   //智能刷新库

2 自定义Adapter

public class MyAdapter extends CommonAdapter<String> {    public MyAdapter(Context context, int layoutId, List<String> datas) {        super(context, layoutId, datas);    }    @Override    protected void convert(ViewHolder vh, String item, int position) {        vh.setText(R.id.tv, item);    }}

3 MainActivity

package com.universalrefresh;import android.content.Context;import android.support.annotation.NonNull;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ListView;import com.scwang.smartrefresh.layout.SmartRefreshLayout;import com.scwang.smartrefresh.layout.api.DefaultRefreshFooterCreater;import com.scwang.smartrefresh.layout.api.DefaultRefreshHeaderCreater;import com.scwang.smartrefresh.layout.api.RefreshFooter;import com.scwang.smartrefresh.layout.api.RefreshHeader;import com.scwang.smartrefresh.layout.api.RefreshLayout;import com.scwang.smartrefresh.layout.footer.BallPulseFooter;import com.scwang.smartrefresh.layout.footer.ClassicsFooter;import com.scwang.smartrefresh.layout.header.BezierRadarHeader;import com.scwang.smartrefresh.layout.header.ClassicsHeader;import com.scwang.smartrefresh.layout.header.FalsifyHeader;import com.scwang.smartrefresh.layout.listener.OnLoadmoreListener;import com.scwang.smartrefresh.layout.listener.OnRefreshListener;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    private List<String> list;    private ListView listView;    private SmartRefreshLayout refreshLayout;    private MyAdapter myAdapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        listView = (ListView) findViewById(R.id.listview);        refreshLayout = (SmartRefreshLayout) findViewById(R.id.slayout);        initData();        myAdapter = new MyAdapter(this,R.layout.item,list);        listView.setAdapter(myAdapter);        refreshLayout.setOnRefreshListener(new OnRefreshListener() {            @Override            public void onRefresh(RefreshLayout refreshlayout) {                refreshLayout.finishRefresh(2000);//刷新的回调方法            }        });        refreshLayout.setOnLoadmoreListener(new OnLoadmoreListener() {            @Override            public void onLoadmore(RefreshLayout refreshlayout) {                refreshLayout.finishLoadmore(2000);//加载更多            }        });        SmartRefreshLayout.setDefaultRefreshHeaderCreater(new DefaultRefreshHeaderCreater() {            @NonNull            @Override            public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout) {                return new ClassicsHeader(context);            }        });        SmartRefreshLayout.setDefaultRefreshFooterCreater(new DefaultRefreshFooterCreater() {            @NonNull            @Override            public RefreshFooter createRefreshFooter(Context context, RefreshLayout layout) {                return new ClassicsFooter(context);            }        });    }    private void initData() {        list = new ArrayList<>();        for(int i=0;i<20;i++){            list.add("我是第" + i);        }    }}
原创粉丝点击