请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

分页加载的时候,如果清理CONVERTER只会显示最新的界面,如果不清理会造成重复加载

private void paging(final String url) {
    final int pageSize = BEAN.getPageSize();
    final int currentCount = BEAN.getCurrentCount();
    final int total = BEAN.getTotal();
    final int index = BEAN.getPageIndex();

    if (mAdapter.getData().size() < pageSize || currentCount >= total) {
        mAdapter.loadMoreEnd(true);
    } else {
        Latte.getHandler().postDelayed(new Runnable() {
            @Override
            public void run() {
                RestClient.builder()
                        .url(url + index)
                        .success(new ISuccess() {
                            @Override
                            public void onSuccess(String response) {
                                LatteLogger.json("paging", response);
                                //这部分数据加载有问题
                                CONVERTER.clearData();
                                mAdapter.addData(CONVERTER.setJsonData(response).convert());
                                //累加数量
                                BEAN.setCurrentCount(mAdapter.getData().size());
                                mAdapter.loadMoreComplete();
                                BEAN.addIndex();
                            }
                        })
                        .build()
                        .get();
            }
        }, 1000);
    }
}


正在回答 回答被采纳积分+3

2回答

凌伊 2018-11-25 21:39:50

确实有这个问题,我找到原因了,因为CONVERTER这个变量会一直保持有上一次json数据,如果clear的话,convert的时候只会有当前这一页的数据,所以这种方法需要额外对list源数据进行处理,这里有一个建档的方法,如下:

//CONVERTER.clearData();
mAdapter.setNewData(CONVERTER.setJsonData(response).convert());
这里把mAdapter.addData();修改成mAdapter.setNewData();即可
0 回复 有任何疑惑可以回复我~
  • RamboZl #1
    你这种方式第一页数据不会被清除,但是后面的会重复加载啊,怎么处理?
    回复 有任何疑惑可以回复我~ 2019-01-18 14:41:05
傅猿猿 2018-07-13 05:15:54

https://img1.sycdn.imooc.com//szimg/5b47c508000130b010011001.jpg
后面没有了啊,还有问的问题也只有一半……我猜是数据传输丢失或者样式问题吧

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信