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)

  • 相关阅读:
    转:CXF学习笔记一:如何创建、发布和访问基于CXF的服务
    转:Osgi实战中的问题
    转:用Spring JMS使异步消息变得简单
    jqueryeasyui分页组件的用法
    JavaScript高级程序设计(第三版)学习笔记一
    浅谈组建开发团队
    平常心
    狮子座与摩羯座 转载
    android项目实战(一)
    chrome安装media player无效的解决方法
  • 原文地址:https://www.cnblogs.com/allencoder/p/4830741.html
Copyright © 2011-2022 走看看