'_positions.isNotEmpty':ScrollController 未附加到任何滚动视图

2023-12-27

我在滚动视图控制器中收到错误。这是错误:

flutter: 'package:flutter/src/widgets/scroll_controller.dart': Failed assertion: line 149 pos 12: '_positions.isNotEmpty': ScrollController not attached to any scroll views.

我使用了以下代码,我希望它能够生成:

return ListView(
  controller: _mealScrollController,
  children: <Widget>[
    Container(
      height: screenSize.height * 0.35,
    ),

    WorkWidget(workTime: workTime.morning),
    WorkWidget(workTime: workTime.morning),
    WorkWidget(workTime: workTime.noon),
    WorkWidget(workTime: workTime.evening),
    WorkWidget(workTime: workTime.lateevening),
    WorkWidget(workTime: workTime.night),
    WorkWidget(workTime: workTime.midnight),
    Container(
      child: Center(
        child: RotateWidget(
          child: Icon(
            Icons.refresh,
            size: AppSize.medium,
          ),
          onTap: widget.callBack,
        ),
      ),
    ),
  ],
);

从您给出的日志来看,错误似乎来自scroll_controller.dart并且不是由引起的List<Widget>在列表视图中。

如果在构建中初始化之前调用 ScrollController,我只能复制此行为。如果您可以提供有关如何使用 ScrollController 的完整最小重现,我们可以看一下。

这是一个可以复制该行为的示例。

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  var _scrollController = ScrollController();

  @override
  void initState() {
    super.initState();
    // Calling _scrollController first without being initialized in the build
    // will cause this error: "ScrollController not attached to any scroll views."
    debugPrint('This will cause an error ${_scrollController.position.atEdge}');

    // I suggest using a listener if you're trying to 
    // trigger functions on scroll change
    _scrollController.addListener(() {
      if (_scrollController.position.atEdge) {
        if (_scrollController.position.pixels == 0)
          print('List scroll at top');
        else {
          print('List scroll at bottom');
        }
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: LayoutBuilder(builder: (context, constraints) {
        return ListView.builder(
          controller: _scrollController,
          itemCount: 10,
          itemBuilder: (context, index) {
            return Container(
                height: constraints.maxHeight * 0.2,
                color: index % 2 == 0 ? Colors.blueAccent : Colors.redAccent);
          },
        );
      }),
    );
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

'_positions.isNotEmpty':ScrollController 未附加到任何滚动视图 的相关文章

  • Gradle 在从网络下载工件时抛出错误。异常:Gradle 任务 assembleDebug 失败,退出代码 1

    我刚刚开始使用 flutter 进行应用程序开发 但甚至无法运行测试应用程序 这是控制台上出现的内容 Launching lib main dart on AOSP on IA Emulator in debug mode Running
  • 导航到新屏幕时状态栏颜色

    我在我的中使用以下build 第一个屏幕更改状态栏颜色的方法 效果很好 1st screen s build method SystemChrome setSystemUIOverlayStyle SystemUiOverlayStyle
  • 未为“AudioCache”类型定义“play”方法

    问题 未为 AudioCache 类型定义 play 方法 导入 包 flutter material dart 导入 包 audioplayers src audio cache dart void main runApp Xylopho
  • Flutter textfield Flutter RTL光标位置问题n-1

    我不知道这个问题是否是老问题 但我尝试了所有方法都没有成功 在输入字段中选择字母 n 时出现的问题 光标跳转到 n 1 包含视频中显示的问题 仅在 RTL 中存在问题 该链接包含问题的代码和视频 代码 链接在这里 https github
  • 如何使用 SingleChildScrollView 使 Stacklayout 可滚动?

    我正在尝试使用 SingleChildScrollView 使堆栈布局可滚动 但它不滚动 这里应该使用SingleChildScrollView吗 我想我已经给出了足够的描述 可以让任何人理解我的问题 这里有更多文本以满足 StackOve
  • Flutter,在第1页时无法点击第2页

    我创建了一个PageView有 3 个页面 每个页面都有一个按钮 单击每个按钮应滚动到该页面 如果在第 2 页 则上一页和下一页都是可点击的 如果它位于第 3 页 则可以单击上一页 如果是在第一页 下一页不可点击 更新 当在 page1 上
  • 颤动中的单选按钮对齐

    我是颤振的新手 我想对齐单选按钮 即 无论文本是什么 单选按钮都应该按列对齐 我在用Column然后小部件Row其中的小部件但得到以下结果 代码在这里 Widget build BuildContext context return Con
  • 在 flutter firebase 中登录时出现错误

    在使用错误的电子邮件或密码登录时 我希望获得我输入的小吃栏 但我的控制台中出现错误 error 初始任务操作失败 RecaptchaAction action signInWithPassword 有例外 内部 发生错误 无效的登录凭证 验
  • 颤振文本小部件仅显示最后一个条目

    我正在尝试在 flutter 中创建日历 目前我正在实施这些活动 为了测试这一点 我创建了一个方法来检查当前日期 即创建行的时间 是否有事件 如果是这种情况 则会在表示内容的容器中打印 x 整个事情只是第一次测试 看它是否在原则上有效 当我
  • 在 main.dart 中使用 FutureBuilder

    下面的代码总是显示 OnboardingScreen 一段时间 可能是几毫秒 然后显示 MyHomePage 我相信你们都明白我想做什么 我正在使用 FutureBuilder 来检查 getString 方法是否有数据 我有什么错 或者还
  • CustomPainter 使用 Listenable 重绘

    CustomPainter 类似乎有几种触发重绘的方法 我让我的画家使用 shouldRepaint 方法 但是 我希望我的画家对可监听中的更改做出反应 而不是轮询更改 Flutter 文档指出 触发重绘的最有效方法是 扩展此类并向 Cus
  • Flutter:从子级检索顶级状态返回 null

    我正在尝试使用 of 方法获取应用程序的顶级状态 类似于 Scaffold of 函数 这是 精简的 代码 class IApp extends StatefulWidget override IAppState createState g
  • 遵循最佳实践在 flutter 中存储 API 密钥的正确方法

    这是在 flutter 中添加秘密 API 密钥的正确方法 最佳实践 以防我想将代码推送到 github 上 我制作了一个使用 API 的简单应用程序 但我以粗略的方式使用密钥只是为了测试该应用程序是否正常工作 通常根据我在后端开发应用程序
  • 是否可以在flutter中开发移动键盘应用程序

    我们想要开发具有一些独特功能 例如在键盘上翻译 的移动键盘应用程序 第三方键盘 我们想知道是否有一种方法可以同时为 IOS 和 Android 开发一次 使用 Flutter 或者其他解决方案 对此有一个长的和一个短的答案 简短的回答基本上
  • 尝试将 Flutter 应用上传到 ItunesConnect 时出现 UIWebView 错误

    我正在尝试将我的应用程序上传到应用程序商店 但是我不断收到错误消息 表明我的应用程序存在此问题 ITMS 90809 已弃用的 API 使用 不再接受使用 UIWebView 的新应用程序 相反 使用 WKWebView 可以提高安全性和可
  • MappedListIterable 不是子类型

    我是 flutter 和 dart 的新手 并尝试从 firestore 作为流获取数据并将其提供给我的 ListView 但我不断收到此错误 type MappedListIterable
  • dart,异或两个哈希码总是会返回一个新的唯一哈希码吗?

    我正在编写一个类 需要有一个基于其两个字段的唯一哈希码 我想知道对两个字段哈希码进行异或是否足以为我的对象生成唯一且一致的哈希码 class TypeMatch final Type potentialSubtype final Type
  • 带有 Firebase 通知的 Flutter Web - subscribeToTopic

    我想在我的 flutter web 应用程序中接收 firebase 通知 我知道 firebase messaging 包不可用于网络 但我已经管理配置我的应用程序以获取令牌 在网络应用程序位于后台时接收并显示消息 并在应用程序位于前台时
  • 如何在父视图和子视图中使用组件两次(DI 是共享的,comp 是单例)

    我有一个按钮组件 具有应用程序特定行为 我打算在应用程序中广泛使用它 问题是 当我有一个使用此按钮的父 子视图时 单击父按钮会触发子视图按钮的 操作 如果不这样做 您自然不会明白发生了什么有多年的面向对象编程经验 让年轻的学校新手使用 da
  • 使用 Visual Studio Code 在 Flutter 上运行 Gradle 时出错

    我正在使用 Windows 10 Visual Studio Code 我尝试在编写代码后运行我的代码 这就是它之后向我展示的内容 在调试模式下在 TECNO Camon CX 上启动 lib main dart 运行 Gradle 时出错

随机推荐