eros icon indicating copy to clipboard operation
eros copied to clipboard

无法动态绑定list组件的showLoadMore属性

Open zhongdom opened this issue 6 years ago • 9 comments

Question

无法动态的设置 list 组件的 showLoadMore 属性,安卓和iOS均存在这个问题。

Environment.

安卓和iOS均使用eros最新版本

What do you think may be caused by the analysis of the problem.

iOS端查看了源码,设置上拉和下拉是在 bmScroller_viewDidLoad 中实现的,此方法只在初始化的时候调用一次,故动态改变 showLoadMore 时不会再去更改header 和 footer的隐藏和显示。猜测安卓端也是同样问题

zhongdom avatar Apr 08 '19 08:04 zhongdom

iOS端已发PR,安卓等大神修复

zhongdom avatar Apr 08 '19 10:04 zhongdom

Android 这边的实现我看了,其实可以叫做是 setLoadMore,就是这个属性是在初始化的时候来设置该 list 是否支持加载更多,如果要改的话其实算是一个功能修改了。

hanliuxin5 avatar Apr 10 '19 08:04 hanliuxin5

+1,现在数据加载完成后还显示那个加载更多。。。求修复。。。大神,还有个问题就是:为什么我每次loadMore 之后 滚动条默认会回到top上去?

zhouxianjun avatar May 07 '19 13:05 zhouxianjun

IOS 升级base lib 到1.3.6就解决了那个加载更多的属性设置问题,但是还是有那个回滚到顶上的问题。。。 还有个问题,虽然1.3.6解决了showLoadMore 的动态变更,但是只能变更一次。。例如初始化的时候为true数据加载完成之后设置showLoadMore 为false,这时候下拉刷新重置showLoadMore 为true则不生效了。 @xiaohuapunk

zhouxianjun avatar May 07 '19 14:05 zhouxianjun

@zhouxianjun

  1. 回滚到顶上的问题是看看是不是设置数据的时候不是用 append 方式,是直接给数组赋值?
  2. 关于第二个问题,有两个解决思路
    • 你应该判断当前页面是否超过一页,如果不满一页就不显示加载更多;同时如果加载完成没有更多数据了,这个时候应该关闭上拉加载功能
    • 使用 weex 自带的 loadmore,是无限加载的形式(ps:注意 loadMoreloadmore 的使用区别)

zhongdom avatar May 08 '19 02:05 zhongdom

@zhongdom 谢谢,

  1. 这个问题应该是我使用错了,我用的 直接赋值。 2.我想表达的是,上拉加载更多与下拉刷新同时使用,当所有数据加载完成后(没有下一页数据了),我会设置showLoadMorefalse关闭上拉加载更多。但这时候用户采用下拉刷新后,数据会回到第一页。这个时候用户想再加载更多怎么办?(我再设置showLoadMore无效)

zhouxianjun avatar May 08 '19 04:05 zhouxianjun

@zhouxianjun

  1. 回滚到顶上的问题是看看是不是设置数据的时候不是用 append 方式,是直接给数组赋值?

  2. 关于第二个问题,有两个解决思路

    • 你应该判断当前页面是否超过一页,如果不满一页就不显示加载更多;同时如果加载完成没有更多数据了,这个时候应该关闭上拉加载功能
    • 使用 weex 自带的 loadmore,是无限加载的形式(ps:注意 loadMoreloadmore 的使用区别)

回滚顶上去是因为我调用了refreshEnd函数,即使是用 this.list = [ ...this.list, ...data]也没问题。

zhouxianjun avatar May 08 '19 12:05 zhouxianjun

iOS端 showLoadMore 设置为 false 后再设置成 true ,此时不能上拉加载,尝试用以下代码修复,未能生效

if (!isShowLoadMore) {
        if (scrollView.mj_footer) {
            scrollView.mj_footer.hidden = YES;
        }
    } else {
        if (scrollView.mj_footer) {
            scrollView.mj_footer.hidden = NO;
        }
    }

zhongdom avatar May 09 '19 07:05 zhongdom

@zhongdom 请问是否有解决?

zliuxingyu avatar Aug 14 '19 08:08 zliuxingyu