zoukankan      html  css  js  c++  java
  • Android-PullToRefresh实现进入自动刷新

    PullToRefreshScrollView实现自动刷新

    1. 查看官方源码 链接Github 地址
      源码图片:

    目的:

    使用Android-PullToRefresh的PullToRefreshScrollView,想在第一次进入的时候显示正在加载设置了setRefreshing(true);但是他没有加载数据

    1. 发现api 上 有两个方法满足需求一个是:
    public void setRefreshing();
    
        /**
                 * Sets the Widget to be in the refresh state. The UI will be updated to
                 * show the 'Refreshing' view.
                 * 
                 * @param doScroll - true if you want to force a scroll to the Refreshing
         *            view.
         */

    我果断使用第一个方法发现不行 ,后来发现群上其他的人在做网易新闻客户端时,处理过这个问题。但是也不是很好的处理办法,

    new Handler().postDelayed(new Runnable() {
    
            @Override
            public void run() {
            mPullToRefreshScrollView.setRefreshing();
            }
    }, 3000);
    

    但是这不是最好的处理办法,我把源码翻遍,也只得到一些还不知道是否正确的结论,是说还未获取到顶部下拉刷新的高度,适当的延时即可。

    因为我的项目中我使用的是androidannotations 开发,所以,我结合以上的思路,自己修改了我的代码逻辑,实现如下

       @UiThread(delay = 1000)
             void setRefrsh() {
                 mScrollView.setRefreshing(true);
             }
             @Override
             public void onResume() {
                 super.onResume();
                 setRefrsh();
             }
    

    需要注意的是需要 实现

     mScrollView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ScrollView>() {
    
                @Override
                public void onRefresh(PullToRefreshBase<ScrollView> refreshView) {
                    getUserInfo();
                }
            });

    要在获取数据完成后再次调用 :

    mScrollView.onRefreshComplete();    
    

    即可实现!

    版权声明:本文为博主原创文章,未经博主允许不得转载。(转载请注明出自 AllenCoder)

  • 相关阅读:
    TCP协议特点和三次握手/四次挥手
    CAP定理、BASE理论
    对自写的Asp.Net分页控件的应用方式(异步无刷新分页)
    Asp.Net分页控件
    SqlHelper
    简易贪吃蛇
    测试一下
    iOS --- DIY文件名批量修改
    iOS常用 --- NSDictionary 与 NSMutableDictionary
    iOS常用---NSArray,NSMutabuleArray
  • 原文地址:https://www.cnblogs.com/allencoder/p/4830741.html
Copyright © 2011-2022 走看看