XRecyclerView
XRecyclerView copied to clipboard
当数据过少无法上拉加载更多
测试发现,当我数据过少时下面这个判断语句内的代码没有执行 if (layoutManager.getChildCount() > 0 && lastVisibleItemPosition >= layoutManager.getItemCount() - 1 && layoutManager.getItemCount() > layoutManager.getChildCount() && !isNoMore && mRefreshHeader.getState() < ArrowRefreshHeader.STATE_REFRESHING) { isLoadingData = true; if (mFootView instanceof LoadingMoreFooter) { ((LoadingMoreFooter) mFootView).setState(LoadingMoreFooter.STATE_LOADING); } else { mFootView.setVisibility(View.VISIBLE); } mLoadingListener.onLoadMore(); } 详细测试发现layoutManager.getItemCount() > layoutManager.getChildCount() 这个判断为false,测试页面添加了两个header,使用GridLayout显示3列,默认加载了三个子布局,这时layoutManager.getItemCount()=3;layoutManager.getChildCount()=7。 这个判断是用来做什么的呢,我屏蔽了这个条件就可以触发上拉加载更多
同问,我也遇到了这个问题,不管是gridLayoutManager或者是LinearLayoutManager都有可能遇到这个问题
同问。。。貌似好久不更新 了
在数据不满一屏的情况下禁止加载更多,理由是数据都不满,哪来的更多
我也遇到了,怎么解决
我也发现有这个问题了,有这个问题了。
数据不满当然要禁止上拉加载,不满时如果要获取新的数据,根据逻辑当然是执行下拉刷新来获取。
楼上说“数据不满当然要禁止上拉加载”当然不合理呀,假设第一页只展示两条数据,点击“查看等多”加载10条数据。
上拉加载 要执行的当然是加载以前内容的逻辑,而当前只显示2条则意味着旧数据仅有2条,要想获取新数据,此时不理所当然的应该下拉刷新么? 查看更多,难道新加载出来的数据是比之前显示的还要新么?否则,那就不能算load了吧,我认为这是该让Refresh去做的工作。
比如 我是有20条数据的,但是有删除功能,删的不足一屏幕,那此时就不能加载更多了,其实更多还是有数据的(服务器还是有数据的),只是没办法加载更多了
在数据不满一屏的情况下禁止加载更多,理由是数据都不满,哪来的更多
我觉得大家遇到的这个问题的现象是这样的: 第一页的数据条数在不同手机上是不一样的,比如在小屏机上充满一屏只要10条,到大屏机上却要18条,然后同样的代码在大屏机上执行就出现了上拉无法加载更多的情况,这归结起来是适配兼容问题