Flutter Web 显示 ScrollPosition 错误

Flutter Web showing error for ScrollPosition

我正在尝试使用 Flutter web 制作一个简单的仪表板。在整个项目中,我没有使用任何 ScrollController,但每当我使用滚轮时都会收到 ScrollPosition 的错误。

════════ Exception caught by animation library ═════════════════════════════════
The provided ScrollController is currently attached to more than one ScrollPosition.
════════════════════════════════════════════════════════════════════════════════

但这不会在 UI 中造成任何问题。
任何建议都会有所帮助,谢谢。

我找到了解决办法。这是由 ListView 引起的。我使用了 3 列,其中 3 列是 Drawer 中的 ListView。 SingleChildView 中还有另外 2 个商品。这是导致问题的原因。我在ListView中加了一个ScrollController就解决了

像这样

return Drawer(
      child: ListView(
        controller: ScrollController(initialScrollOffset: 0),
        children: [
          DrawerListTile(
            title: "Dashboard",
            svgSrc: "assets/icons/menu_dashbord.svg",
            press: () {},
          ),
          DrawerListTile(
            title: "Transaction",
            svgSrc: "assets/icons/menu_tran.svg",
            press: () {},
          ),
          DrawerListTile(
            title: "Store",
            svgSrc: "assets/icons/menu_store.svg",
            press: () {},
          ),
          DrawerListTile(
            title: "Profile",
            svgSrc: "assets/icons/menu_profile.svg",
            press: () {},
          ),
          DrawerListTile(
            title: "Settings",
            svgSrc: "assets/icons/menu_setting.svg",
            press: () {},
          ),
        ],
      ),
    );

错误的主要原因是有多个 ScrollView(如 ListView、SingleChildScrollView、CustomScrollView 等)的 scrollDirection 是垂直的,并且在一个路由中没有 scrollController。

https://github.com/flutter/flutter/issues/93862

通过在“SingleChildScrollView”中设置 primary: false 也有效