xml:
<android.support.v4.widget.SwipeRefreshLayout android:id="@+id/refresh_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/listview" android:layout_marginLeft="24dp" android:layout_width="match_parent" android:layout_height="match_parent" android:cacheColorHint="@android:color/transparent"></ListView> </android.support.v4.widget.SwipeRefreshLayout>
代码:
public class TestActivity extends Activity { ListView listView; private SwipeRefreshLayout refresh_layout = null;//刷新控件 private List<String> datas = new ArrayList<String>();//lis的数据 ArrayAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView= (ListView) findViewById(R.id.listview); View view=getLayoutInflater().inflate(R.layout.test,null); listView.addHeaderView(view); refresh_layout = (SwipeRefreshLayout) this.findViewById(R.id.refresh_layout); refresh_layout.setColorSchemeResources(R.color.color1,R.color.color3);//设置加载圆圈的颜色 for (int i = 0; i < 30; i++) { datas.add("item:"+i); } adapter = new ArrayAdapter(this, R.layout.item, R.id.txt, datas); listView.setAdapter(adapter); refresh_layout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { new Thread(new Runnable() {//下拉触发的函数,这里是睡1s然后加入一个数据,然后更新界面 @Override public void run() { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } datas.add(0,"item:refresh..."); handler.sendEmptyMessage(0); } }).start(); } }); } private MyHandler handler = new MyHandler(); class MyHandler extends Handler { @Override public void handleMessage(Message msg) { switch (msg.what) { case 0: refresh_layout.setRefreshing(false); adapter.notifyDataSetChanged(); break; default: break; } } } }
效果