【问题标题】:Flutter List View Item occupy screen height and snap to next item on scrollFlutter List View Item 占据屏幕高度并在滚动时捕捉到下一个项目
【发布时间】:2018-12-29 21:03:45
【问题描述】:

我正在尝试实现类似于 CureJoy iOS 应用程序的东西,其中每个项目看起来像一个完全占据屏幕高度的独立垂直列表项目,当我们向下滚动一点时,它会捕捉到占据整个屏幕高度的下一个项目。我已经尝试了很多事情,比如

NotificationListener(onNotification: ... // other code

包装到列表视图并调用处理滚动更改的函数

_func(ScrollNotification notification) {
    ... // other code
    double scollPos = notification.metrics.pixels;
    double toScroll = oldScrollPos;

    newScrollPos = scrollPos;
    if(newScrollPos < oldScrollPos)
        toScroll -= rowHeight;
    else
        toScroll += rowHeight;
    oldScrollPos = toScroll;

    _scrollController.animateTo(toScroll,
        duration: const Duration(milliseconds: 500),
        curve: Curves.easeOut,
    );

其他代码实际上做了一些逻辑来保存可能小于或大于当前滚动位置的先前滚动位置,据此我将强制步进到下一个或上一个列表项位置。这是非常无效的,并且滚动到许多错误的位置并在最后抛出错误。

有没有非常优雅和简单的解决方案?

【问题讨论】:

    标签: listview scroll flutter dart


    【解决方案1】:

    对不起,伙计们,我为获得理想结果而在现有事物上工作的本性对我造成了影响,但似乎在 Flutter 中已经准备好了一个 PageView 类。啊,我很惭愧!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-05
      • 1970-01-01
      • 1970-01-01
      • 2016-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-19
      相关资源
      最近更新 更多