nukc/LoadMoreWrapper

LoadMoreWrapper的问题请教

xyounger opened this issue · 8 comments

如何做到未铺满屏幕时不自动加载更多,铺满屏幕滑动时才会加载更多

nukc commented

能具体说说是什么样的场景需求吗

比如说 第一次获取的数据没有铺满屏幕 但是还是会自动加载更多(转圈),视觉效果不太好

nukc commented

未铺满屏幕的情况多吗?第2次获取数据后一般能铺满吗?还是第2次获取数据是没有数据的?
如果是未铺满但还有数据,此时不自动加载,需要用户滑动才进行滑动(要是用户不知道还能滑动加载更多的情况下选择了退出当前界面貌似不太友好),或许你想要的是那种点击加载更多按钮的形式?

我知道你这个自动加载更多的好处,但有时候有且只有一页数据 而且这一页的数据还未铺满屏幕,就感觉多了个加载更多的转圈

nukc commented

在无法保证第2次或下次请求是否还有数据的情况,理应需要加载更多,在加载更多后如果数据少于想要的数量或者没有数据可以禁止加载更多(比如:每次请求10条数据,第1次拿到了10条,但2次只有9条,那一般可判定为没有更多数据了,这个时候禁止加载更多即可,圈圈也没了)。

这个可以自己做处理,LoadMoreWrapper 有提供关闭加载更多的方法:

setLoadMoreEnabled(boolean enabled)

onLoadMore 回调里可以这样处理:

          .setListener(new LoadMoreAdapter.OnLoadMoreListener() {
                    @Override
                    public void onLoadMore(LoadMoreAdapter.Enabled enabled) {
                        // 如果请求没有数据或少了
                        if (...) {
                            enabled.setLoadMoreEnabled(false);
                        }
                    }
                })

这样是否能满足你的需求?

nukc commented

如果有刷新(比如下拉刷新或选择了其他什么 tag 后显示其他数据),应该重新启用加载更多

setLoadMoreEnabled(true);

很感谢你的及时回答,这个问题现在我自己这边可以处理好了。Thanks!!!

nukc commented

:)