关于SwipeRefreshLayout实现上拉加载更多,下拉加载更多的方法

来源:互联网 发布:mac怎么安装mpv 编辑:程序博客网 时间:2024/05/23 13:27

话不多说直接上代码

public class SwipeRefreshLayoutActivity extends Activity {    private ListView listView;    private SwipeRefreshLayout layout;    private List<HashMap<String,Object>> data = new ArrayList<>();    private SimpleAdapter adapter;    private View view ,head,line;//    private List<String> data = new ArrayList<>();//    private ArrayAdapter<String> adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.swipe_refresh_activity);        listView = (ListView) findViewById(R.id.listView);        layout=(SwipeRefreshLayout)findViewById(R.id.refresh);        head=findViewById(R.id.refresh_item_view);//        line=findViewById(R.id.lineMe);        initData();        adapter = new SimpleAdapter(this,data,R.layout.swipe_item,new String[]{"name","picture"},new int[]{R.id.tv1,R.id.img1});        listView.setAdapter(adapter);        view = LayoutInflater.from(this).inflate(R.layout.swipe_item,null);        /**         * 通过自带刷新监听实现下拉刷新更多数据         */                layout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {            @Override            public void onRefresh() {                listView.addHeaderView(view);                addDdata();            }            private void addDdata() {                HashMap<String,Object> hashMapm=new HashMap<String, Object>();                hashMapm.put("name","帅比");                hashMapm.put("picture", android.R.drawable.ic_menu_help);                data.add(hashMapm);                new Handler().postDelayed(new Runnable() {                    @Override                    public void run() {                        listView.removeHeaderView(view);//                        head.setVisibility(View.GONE);                        adapter.notifyDataSetChanged();                        layout.setRefreshing(false);                    }                }, 4000);            }        });        /**         * 通过判断是否到listview底部添加页脚实现上拉加载更多         */              listView.setOnScrollListener(new AbsListView.OnScrollListener() {          @Override          public void onScrollStateChanged(AbsListView absListView, int i) {              LogUtils.e("onScrollStateChanged"+"==="+i);//             if (i==1)//             {//                 layout.setRefreshing(true);//             }else {//                 layout.setRefreshing(false);//             }              if (absListView.getLastVisiblePosition()==absListView.getCount()-1)//判断是否到底部              {                  listView.addFooterView(view);                  layout.setRefreshing(true);                  addDataMe();              }          }          private void addDataMe() {              HashMap<String,Object> hashMapm=new HashMap<String, Object>();              hashMapm.put("name","帅比杨");              hashMapm.put("picture", android.R.drawable.ic_menu_help);              data.add(hashMapm);              new Handler().postDelayed(new Runnable() {                  @Override                  public void run() {                      listView.removeFooterView(view);//                        head.setVisibility(View.GONE);                      adapter.notifyDataSetChanged();                      layout.setRefreshing(false);                  }              }, 2000);          }          @Override          public void onScroll(AbsListView absListView, int i, int i1, int i2) {              LogUtils.e("onScroll"+"=="+i+"=="+"=="+i1+"=="+i2);          }      });//        adapter = new ArrayAdapter<String>(SwipeRefreshLayoutActivity.this, android.R.layout.simple_list_item_1, data);//        listView.setAdapter(adapter);    }    private void initData() {        for (int i = 0; i<40;i++)        {            HashMap<String,Object> hashMap = new HashMap<>();            hashMap.put("name","杨宇奇"+i);            hashMap.put("picture",android.R.drawable.ic_delete);            data.add(hashMap);        }//        for (int i =0;i<30;i++)//        {//            data.add("杨宇奇"+i);//        }    }    @Override    public boolean onTouchEvent(MotionEvent event) {        if (layout.getChildAt(2) instanceof ListView)        {            layout.setRefreshing(false);        }        return super.onTouchEvent(event);    }

布局item




0 0
原创粉丝点击