关闭

PullToRefreshListView注意事项

809人阅读 评论(0) 收藏 举报
分类:

1-PullToRefresh使用刷新后,如果立即调用onRefreshComplete(),onRefreshComplete()会运行失效,下拉刷新的进度状态并不会消失,一直处于刷新状态.
解决办法:延迟调用onRefreshComplete();

        ptrListView.setOnRefreshListener(new OnRefreshListener2<ListView>() {

            @Override
            public void onPullDownToRefresh(
                    PullToRefreshBase<ListView> refreshView) {
                // 下拉刷新
                //这里要延迟执行ptrListView.onRefreshComplete()方法,如果立马执行onRefreshComplete()
                //会导致onRefreshComplete()执行失效,ptrListView停留在刷新状态
                new Handler().postDelayed(new Runnable(){     

                    public void run() {     
                    //execute the task 
                    }     
                 }, 1000); 

            }

            @Override
            public void onPullUpToRefresh(
                    PullToRefreshBase<ListView> refreshView) {
                // 上拉加载更多
                new Handler().postDelayed(new Runnable(){     

                    public void run() {     
                    //execute the task     
                    }     
                 }, 1000);  
            }
        });

2-PullToRefreshListView在使用时,在xml的布局文件中,小心使用android:visibility=”gone”;
同时PullToRefreshListView父布局的height设置成match_parent
以上因素可能导致PullToRefreshListView在适配数据后不能正常显示

3-使用PullToRefreshWebView库的时候,在android6.0上
PullToRefreshWebView中的FloatMath.floor()不能继续使用,其中floor会要报错

protected boolean isReadyForPullEnd() {
float exactContentHeight = FloatMath.floor(mRefreshableView.getContentHeight() * mRefreshableView.getScale());
return mRefreshableView.getScrollY() >= (exactContentHeight - mRefreshableView.getHeight());
}

解决办法:
Android6.0中使用 Math.floor 代替 FloatMath.floor ;

4-给PullToRefreshListView添加下拉刷新监听的时候,OnRefreshListener2会调用失败,原因是自动导包的时候导的是OnRefreshListener,OnRefreshListener2需要手动导包:

import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener2;

5-如果PullToRefreshListView要进行长按,则先要通过
PullToRefreshListView.getRefreshableView().setOnItemLongClickListener(this);
来进行长按监听,不能用原生ListView的OnItemLongClickListener方法

6-以下两个属性需要特别说明以下:
ptrScrollingWhileRefreshingEnabled刷新的时候,是否允许ListView或GridView滚动。
ptrListViewExtrasEnabled 决定了Header,Footer以何种方式加入mPullRefreshListView,true为headView方式加入,就是滚动时刷新头部会一起滚动。此设置如果为false,在mPullRefreshListView上拉刷新的时候,新添加入的值不会立即显示在mPullRefreshListView的尾部,需要下拉后再上拉才能显示,故一般该值设置为true。

PS:
PullToRefreshListView的具体使用和案例示例,可参考鸿洋的博客
http://blog.csdn.net/lmj623565791/article/details/38238749

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:15074次
    • 积分:374
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:2篇
    • 译文:4篇
    • 评论:1条
    文章分类
    最新评论