PullToRefreshListView注意事项

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
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值