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

话不多说直接上代码

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值