關於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




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章