1 SwipeRefreshLayout

修改布局文件,新增 SwipeRefreshLayout :

<?xml version="1.0" encoding="utf-8"?>         ...                                   ...     ...

这里我们把 RecyclerView 放在 SwipeRefreshLayout 中。

2 处理刷新

修改活动类:

public class MainActivity extends AppCompatActivity {    private SwipeRefreshLayout srl;     @Override    protected void onCreate(Bundle savedInstanceState) {    ...    //处理刷新逻辑        srl = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_layout);//获取 SwipeRefreshLayout 实例        srl.setColorSchemeResources(R.color.colorPrimary);//设置刷新进度条颜色        srl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {//设置刷新监听器                                     @Override                                     public void onRefresh() {                                         refresh();                                     }                                 }        );    } /**     * 刷新     */    private void refresh() {        new Thread(new Runnable() {            @Override            public void run() {                try {                    Thread.sleep(1000);//为了体现出刷新效果,所以这里休眠了线程                } catch (InterruptedException e) {                    e.printStackTrace();                }                //切回主线程                runOnUiThread(new Runnable() {                    @Override                    public void run() {                        initCats();//重新生成数据                        adapter.notifyDataSetChanged();//通知数据已发生变化                        srl.setRefreshing(false);//当刷新事件结束时,隐藏刷新进度条                    }                });            }        }).start();    }...}

在 onCreate 方法中:

  1. 获取 SwipeRefreshLayout 实例。
  2. 设置刷新进度条颜色。
  3. 设置刷新监听器。在监听器中调用 refresh() 方法。

在 refresh 方法中:

  1. 为了体现出刷新效果,所以在此休眠了线程。一般情况下,这里会与服务器进行交互,获取数据。
  2. 利用 runOnUiThread() 切回主线程。
  3. 在主线程中,重新生成数据,接着通知数据已发生变化,最后隐藏刷新进度条。

运行程序,向下拖动主界面,就会出现下拉刷新进度条,松手就会自动刷新图片:

是不是很酷呀O(∩_∩)O~

更多相关文章

  1. Android 数据库事务操作
  2. android:intent 发送接收数据
  3. android实现共享数据
  4. Android MMS模块数据存取
  5. Android:数据库增删改查、SQLite、ORM、Cursor
  6. android使用JSON进行网络数据交换(服务端、客户端)的实现
  7. android binder机制及其源码解析之第二节 重要函数讲解之常用数
  8. android典型代码系列(二)------sqlite数据库操作高级

随机推荐

  1. android 锁屏时,不运行锁屏程序
  2. Android 菜单(OptionMenu)大全
  3. 移动开发:Android(安卓)Media (Audio) Fr
  4. 安卓报错:AS Error inflating class andr
  5. 2015最新的 导航条《actionbar》给大家分
  6. Android LayoutEditor使Eclipse自动关闭
  7. android屏幕和view的截图
  8. Android Configuration
  9. android Vibrator开启振动功能
  10. Android 面试准备