Listview 颤振列表视图项占据屏幕高度并捕捉到滚动条上的下一项

Listview 颤振列表视图项占据屏幕高度并捕捉到滚动条上的下一项,listview,scroll,flutter,dart,Listview,Scroll,Flutter,Dart,我试图实现与CureJoy iOS应用程序类似的功能,其中每个项目看起来都像一个独立的垂直列表项目,完全占据屏幕高度,当我们向下滚动一点时,它会捕捉到占据整个屏幕高度的下一个项目。我试过很多东西,比如 NotificationListener(onNotification: ... // other code 包装到listview并调用处理滚动更改的函数 _func(ScrollNotification notification) { ... // other code do

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

NotificationListener(onNotification: ... // other code
包装到listview并调用处理滚动更改的函数

_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,
    );
\u func(滚动通知){
…//其他代码
double scollPos=notification.metrics.pixels;
double-toScroll=oldScrollPos;
newScrollPos=滚动位置;
if(newScrollPos
另一段代码实际上执行了一些逻辑,保持了上一个滚动位置,该位置可能小于或大于当前滚动位置,根据该位置,我将强制转到下一个或上一个列表项位置。这非常无效,滚动到许多错误位置,并在最后抛出错误


有一个非常优雅和简单的解决方案吗?

对不起,伙计们,但我为获得想要的结果而在现有事物上工作的天性让我付出了代价,但似乎有一门课是在Flutter中准备好的。啊,我感到惭愧