1.用SwipeRefreshLayout把要刷新的空件包裹起来
<android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swipe" android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.RecyclerView android:id="@+id/recycler" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.v4.widget.SwipeRefreshLayout>
2.在Java代码里正确的位置填写如下代码
//设置下拉刷新进度条的颜色 swipeRefreshLayout.setColorSchemeResources(R.color.colorPrimary); // 设置下拉刷新的监听器 swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() {//这个方法里面是从网络获取数据的 //为了简单起见,这个方法是加载的本地数据,方法名随便起 refreshFruits(); } }); } private void refreshFruits() { //耗时操作要到子线程 new Thread(new Runnable() { @Override public void run() { try { //为了看效果,让它睡了2秒 Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } //切换到主线程刷新数据 runOnUiThread(new Runnable() { @Override public void run() { //重新加载数据 // initFruits(); //刷新数据 adapter.notifyDataSetChanged(); //刷新事件结束,并隐藏刷新进度条 swipeRefreshLayout.setRefreshing(false); } }); } }).start();