Android ListView 上拉加载 定位问题

listView 上拉下拉 方法 都是很简单的 ,网络上还有很多开源项目,这里做个总结

这次项目中是这么写的:

1.首先实现这个接口:     OnScrollListener

public class Weibo extends Activity implements OnClickListener,
        OnScrollListener

2.给ListView设置这个监听方法:

lv = (ListView) findViewById(R.id.list);
        lv.setOnScrollListener(this);
       

这两步也有其他方法,不想贴了

3.实现如下方法:

@Override
    public void onScroll(AbsListView view, int firstVisibleItem,
            int visibleItemCount, int totalItemCount) {
         mPosition = firstVisibleItem + visibleItemCount;//记录下拉位置
    }

    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
        if (scrollState == this.SCROLL_STATE_FLING) {//松手并下拉到最后一条数据,就异步加载数据
            Log.e("aril", "mposition:" + mPosition + ",size:" + weiboLis.size());
            if (mPosition == weiboLis.size()) {
                if (lastPage) {
                    ToastUtil.t(getApplicationContext(), "已无更多数据!");
                } else {
                    ToastUtil.t(getApplicationContext(), "上拉更新中!");
                    page += 1;
                    GetWeiboDataTask gwt = new GetWeiboDataTask();
                    gwt.execute();
                }
            }
        }
    }

4.其他数据:

    static int mPosition = 0;
    static int page = 1;
    boolean lastPage = false;

    异步类中的数据:

                  String mWeiboString  = WeiboUtil.getSomeoneWeibo(user_id, 0 + "",
                            10000 + "", page + "");
                    mTempList = JsonUtil.weiboJson(mWeiboString );
                    if (mTempList.size() != 10) {
                        lastPage = true;
                    }

                    for (WeiboBean weibo : mTempList) {
                        mWeiboList.add((WeiboBean) weibo);
                    }

5.最后是下拉后的定位问题:

网上说的这样做:
        lv.setTranscriptMode(AbsListView.TRANSCRIPT_MODE_DISABLED);

并不一定能解决问题,

根据自身需要用lv.setSelection(mPosition);是个不错的选择


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值