• 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)

  • 相关阅读:
    java.lang.NoClassDefFoundError: org.junit.runner.Runner
    SpringMVC 八大注解
    spring @autowired使用总结
    Git使用入门
    N21_栈的压入弹出序列。
    N20_包含min函数的栈
    N19_顺时针打印指针
    N17_判断树B是不是树A的子结构
    N16_合并两个排序链表
    N15_反转链表后,输出新链表的表头。
  • 原文地址:https://www.cnblogs.com/allencoder/p/4830741.html
Copyright © 2020-2023  润新知