zoukankan      html  css  js  c++  java
  • 下拉刷新 SwipeRefreshLayout

    把想要实现下拉刷新的控件放在SwipeRefreshLayout中,就可以直接支持下拉刷新

     <android.support.v4.widget.SwipeRefreshLayout
                android:id="@+id/swipe_refresh"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_behavior="@string/appbar_scrolling_view_behavior">
    
                <android.support.v7.widget.RecyclerView
                    android:id="@+id/recycler_view"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />
    
            </android.support.v4.widget.SwipeRefreshLayout>

    虽然控件已经支持下拉刷新了,但是还要去处理具体逻辑

    //下拉刷新
             SwipeRefreshLayout mSwipeRefreshLayout;
          找到SwipeRefreshLayout 布局 mSwipeRefreshLayout
    = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh);
          设置进度条的颜色 mSwipeRefreshLayout.setColorSchemeResources(R.color.colorPrimary);
          设置下拉刷新的监听事件。 mSwipeRefreshLayout.setOnRefreshListener(
    new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { refreshFruits(); } });


    private void refreshFruits() {
    new Thread(new Runnable() {
    @Override
    public void run() {
    try {
    Thread.sleep(2000);让线程休眠两秒因为本地刷新太快,用户感觉不到
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
          在主线程中改变数据
    runOnUiThread(new Runnable() {
    @Override
    public void run() {
    initFruits();//生成新的数据
    adpapter.notifyDataSetChanged();//通知数据刷新
    mSwipeRefreshLayout.setRefreshing(false);//刷新结束,并且隐藏刷新进度条
    }
    });
    }
    }).start();
    }
     
  • 相关阅读:
    [读书笔记]子查询
    [读书笔记]SQL约束
    [转载]NoSQL数据库的基础知识
    利用C#实现对excel的写操作
    [转载]SQL Server内核架构剖析
    利用花生壳和IIS发布网页过程
    [读书笔记]ASP.NET的URL路由引擎
    [翻译]比较ADO.NET中的不同数据访问技术(Performance Comparison:Data Access Techniques)
    [正则表达式]基础知识总结
    CF623E Transforming Sequence
  • 原文地址:https://www.cnblogs.com/zhoushenglei/p/7224778.html
Copyright © 2011-2022 走看看