话不多说直接上代码
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