Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

setempty() 问题 #542

Closed
jttttttttttttt opened this issue Nov 22, 2016 · 29 comments
Closed

setempty() 问题 #542

jttttttttttttt opened this issue Nov 22, 2016 · 29 comments

Comments

@jttttttttttttt
Copy link

public void setEmptyView(RecyclerView rv, BaseQuickAdapter baseQuickAdapter) {
baseQuickAdapter.setEmptyView(getEmptyView(rv));
baseQuickAdapter.notifyItemChanged(0);
}

public void setErrorView(RecyclerView rv, BaseQuickAdapter baseQuickAdapter) {
    View view = getErrorView(rv);
    view.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            errorRefreshData();
        }
    });
    baseQuickAdapter.setEmptyView(view);
    baseQuickAdapter.notifyItemChanged(0);
}

我有2个方法 如果我加载没数据setEmptyView,加载错误setErrorView。我先加载成功没数据setEmptyView,然后加载失败setErrorView,再次加载失败setErrorView,这一步的时候baseQuickAdapter.notifyItemChanged(0); 这个会显示setEmptyView的内容,非常奇怪 求问那里写错了

@1109993488
Copy link
Collaborator

2.6.1不用notifyItemChanged(0);

@jttttttttttttt
Copy link
Author

怎么说

@jttttttttttttt
Copy link
Author

notifyItemChanged(0);用多了会出现
java.lang.IllegalArgumentException: Called attach on a child which is not detached: ViewHolder{3589b80f position=0 id=-1, oldPos=-1, pLpos:-1} baseQuickAdapter.setEmptyView(view);
baseQuickAdapter.notifyDataSetChanged();又不会变化。。。。。。

@1109993488
Copy link
Collaborator

直接setEmptyView(view)不行吗

@jttttttttttttt
Copy link
Author

看见了 现在集成了在方法里了

@1109993488
Copy link
Collaborator

可以了吗

@jttttttttttttt
Copy link
Author

还没测试。。

@CymChad
Copy link
Owner

CymChad commented Nov 22, 2016

2.6.1 你可以参考 demo 代码

@jttttttttttttt
Copy link
Author

orderAdapter.loadMoreFail(); 这个怎么设置点击加载事件

@1109993488
Copy link
Collaborator

不用设置点击加载事件,已经设置了,点击后会回调加载更多

@jttttttttttttt
Copy link
Author

if (!isCanLoadMore) {
                            baseQuickAdapter.loadMoreEnd();
                        } else {
                            if (isNetConnect()) {
                                //pageNo++;
                                loadMoreData();
                            } else {
                                T.showShort(getCContext(), "网络错误,请检查网络");
                                baseQuickAdapter.loadMoreFail();
                            }
                        }

@jttttttttttttt
Copy link
Author

加载到某一次之后 拉到底部就不加载了

@jttttttttttttt
Copy link
Author

求帮助

@1109993488
Copy link
Collaborator

一直走上面的T.showShort(getCContext(), "网络错误,请检查网络"); baseQuickAdapter.loadMoreFail();这2句?

@1109993488
Copy link
Collaborator

你设置setAutoLoadMoreSize这个了吗?

@jttttttttttttt
Copy link
Author

第一次走loadMoreData(); 后面这个就不走了

@jttttttttttttt
Copy link
Author

这个必须要设置吗?

@1109993488
Copy link
Collaborator

不是必须的,那你说的一直停在底部刷新 是一直调//pageNo++; loadMoreData();这个吗?loadMoreData()怎么写的

@jttttttttttttt
Copy link
Author

就没走拉到底部加载方法

@1109993488
Copy link
Collaborator

你现在的问题能详细描述下吗

@jttttttttttttt
Copy link
Author

我再初次刷新的时候tableAdapter.setEnableLoadMore(true);

baseQuickAdapter.openLoadAnimation();
        baseQuickAdapter.setAutoLoadMoreSize(AppConfig.PAGE_SIZE);
        baseQuickAdapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() {
            @Override
            public void onLoadMoreRequested() {
                rv.post(new Runnable() {
                    @Override
                    public void run() {
                        if (!isCanLoadMore) {
                            baseQuickAdapter.loadMoreEnd();
                        } else {
                            if (isNetConnect()) {
                                //pageNo++;
                                loadMoreData();
                            } else {
                                T.showShort(getCContext(), "网络错误,请检查网络");
                                baseQuickAdapter.loadMoreFail();
                            }
                        }
                    }
                });
            }
        });

加载失败

if (orderLst.size() == 0) {
setErrorView(rv, orderAdapter);
} else {
rv.post(new Runnable() {
@OverRide
public void run() {
orderAdapter.loadMoreFail();
}
});
}

加载成功

if (orderLst.size() == 0) {
                    setEmptyView(rv, orderAdapter);
                } else {
                    isCanLoadMore = messageInfo.getResult().isCanloadMore();
                    if (!isCanLoadMore) {
                        orderAdapter.loadMoreEnd();
                    }
                }
public void addData() {

        number++;

        for (int i = tableLst.size(); i < number * 20 ; i++) {
            TableModel model = new TableModel();
            model.setId(i);
            model.setCode("x12" + i);
            model.setCustomerName("xxx");
            model.setNumber(10);
            model.setName("donghaiting");
            tableLst.add(model);
        }
        tableAdapter.notifyDataSetChanged();
    }

现在的问题是加载到底部不走RequestLoadMoreListener里面了

@jttttttttttttt
Copy link
Author

一直就是底部转圆圈

@1109993488
Copy link
Collaborator

setAutoLoadMoreSize这个方法不是设置pageSize,这个参数设置N你就会在倒数第N个位置显示出来的时候刷新,默认是1就是在最后一个item显示的时候回调加载更多

@jttttttttttttt
Copy link
Author

现在去掉了 但是就是加载一次 第二次就只显示底部了

@1109993488
Copy link
Collaborator

一直在底部转圈是加载成功后还有数据时需要调用loadMoreComplete(),如果没有数据调用loadMoreEnd()

@jttttttttttttt
Copy link
Author

刷完数据还有数据时 每次都要再调用这个方法是吧loadMoreComplete();

@1109993488
Copy link
Collaborator

恩,对

@jttttttttttttt
Copy link
Author

谢谢 是这样子的

@jttttttttttttt
Copy link
Author

有个新问题baseQuickAdapter.openLoadAnimation(); 我设置动画是这样的 以前的那版还没测试过只有一个数据的情况下。当adapter.notiRemove(position), 会报错IndexOutOfBoundsException: Inconsistency detected. Invalid item position,复写了LinearLayoutManager 这个。现在发现Ok了

@CymChad CymChad closed this as completed Nov 23, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants