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

垂直滚动的PageView无法下拉刷新 #240

Closed
SpanishOnion opened this issue Jan 12, 2020 · 2 comments
Closed

垂直滚动的PageView无法下拉刷新 #240

SpanishOnion opened this issue Jan 12, 2020 · 2 comments

Comments

@SpanishOnion
Copy link

SpanishOnion commented Jan 12, 2020

下拉时无法刷新滚动方向是垂直的 PageView

代码如下:

SmartRefresher(
    controller: _model.controller,
    header: MaterialClassicHeader(),
    onRefresh: _model.handleRefresh,
    child: PageView.builder(
        scrollDirection: Axis.vertical,
        itemCount: _model.length,
        itemBuilder: _buildPageViewItem,
    ),
)

之前使用 RefreshIndicator,下拉时是可以正常刷新的,代码如下:

RefreshIndicator(
    onRefresh: _model.handleRefresh,
    child: PageView.builder(
        scrollDirection: Axis.vertical,
        itemCount: _model.length,
        itemBuilder: _buildPageViewItem,
    ),
)

请问我需要配置什么,才能像 RefreshIndicator 那样实现下拉刷新?

还有一个疑问就是,为什么必须使用 controller?如果和 Provider 结合,就得每个 model 文件里都要声明一个 controller,而且下拉刷新加载完数据后,必须手动通过 controller 来关闭加载动画,我知道使用 controller 可以自定义的东西非常多,但是如果对于我这种要求不多的人来说,使用起来就很麻烦。

如果 SmartRefresher 在默认情况下,不需要声明 controller,能像 RefreshIndicator 那样根据 Future 的返回状态来自动停止刷新动画就好了。

我是个菜鸡,说的有不对的地方,请大佬多多包涵。

@peng8350
Copy link
Owner

第一个问题:和 #219 重复 ,垂直PageView不支持,机制参照了RefreshControll来实现
第二个问题:这个主要是返回的结果不好判断,比如上拉加载,有三种结果,没有更多数据,失败,成功。这三个要你自己来取决的。还有这会带来很大突破性的变化,这会让很多人可能会不满,你懂的。当然,如果你有很好的意见,也可以提

@peng8350
Copy link
Owner

修复我之前的答案,什么方向都可以实现,参考 #198

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

2 participants