PullToRefresh的使用的详细用法,一个细节问题

来源:互联网 发布:永恒之塔人物数据男 编辑:程序博客网 时间:2024/06/07 10:27

pulltorefresh算是一个常用且强大的上拉刷新下拉加载库,我们今天来探讨一下它的细节

它的原理:在View中有一个scrollTo方法,可以将整个View移动到指定的位置,PullToRefresh就是重写了onTouchEvent方法来检测用户滑动的偏移距离,然后用滑动距离调用scrollTo方法来实现整个View的上下左右移动的。         

它的使用:

 <com.jmt.pullrefresh.PullToRefreshListView
            android:id="@+id/lvListView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:divider="@color/backgroundcolor"
             android:listSelector="@android:color/transparent"  
            android:dividerHeight="1px"
            android:scrollbars="none"
         
            android:fadingEdge="none" >
        </com.jmt.pullrefresh.PullToRefreshListView>  

1、首先:设置他的mode,上拉下拉都可以

listView.setMode(Mode.BOTH);listView.setOnRefreshListener(new PullToRefreshListView.OnRefreshListener2<ListView>() {@Overridepublic void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {pageIndex=1;//下拉刷新getData(1);}@Overridepublic void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {//上拉加载pageIndex++;getData(2);}});
如果只下拉  

               //只下拉
listView.setMode(Mode.PULL_FROM_START);
//只上拉
listView.setMode(Mode.PULL_FROM_END);

item点击事件:

listView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {//这里是因为pulltorefrsh的header算一个item,所以自己用的时候 要-1int position=arg2-1;}});

最后:

                if(listView.isRefreshing()){
                   //加载header或footer隐藏              listView.onRefreshComplete();          }


注意:list更新的时候最好用    adapter.notifyDataSetChanged();

还有一点:就是下拉刷新的时候 getData完成网络操作后,再去 data.clear(); data=新的数据 

如果在下拉刷新回调方法里面清楚数据则会只显示一条数据

public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView)



0 0