我想向用户展示所有提出的错误.

import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(
    builder: (context, widget) {
      ErrorWidget.builder = (errorDetails) {
        Widget error = Text(errorDetails.toString());
        if (widget is Scaffold || widget is Navigator) {
          error = SingleChildScrollView(child: error); // <= not scrolling
        }
        return error;
      };
      if (widget != null) return widget;
      throw StateError('widget is null');
    },
    home: const SafeArea(child: Scaffold(body: MyHomePage())),
  ));
}

class MyHomePage extends StatelessWidget {
  const MyHomePage({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    throw "build exception";
  }
}

但小工具不能滚动.

我试图在Scaffold中包装SingleChildScrollView,但它不起作用.

我应该怎么做才能使它可滚动?

推荐答案

替换ErrorWidget.builder中的条件

ErrorWidget.builder = (errorDetails) {
      Widget error = Text(errorDetails.toString());
      if (widget is FocusScope || widget is Navigator) {
        error = SingleChildScrollView(child: error);
      }
      return error;
    };

这里,Scaffold被替换为FocusScope,因为MyHomePage返回的是一个FocusScope类型的小部件.希望能有所帮助.

Flutter相关问答推荐

如何在容器中移动图标按钮?

我如何才能收到每天重复的预定通知?

在Flutter 中将参数从一个类传递到另一个类

为什么Flutter InAppWebView中的DatePicker看起来很旧?

我的flutter代码显示一个小部件被认为是死代码,为什么?

如何在扩展其他小部件时访问Ref

如何在应用程序中使用Fflight显示表情包

缩短经常使用的行Theme.of(context).colorScheme

无法在我的Flutter 应用程序中使用GoRouter测试导航

'Flutter的无效常数值错误

dart /长笛中的返回早期模式和拆分方法

如何使用providerContainer监听/写入FutureProvider?

Flutter:我的应用程序是否需要包含退款购买?

在 flutter 的列中使用 Expanded 时出现渲染 Flex 错误

Dart:未捕获错误:RangeError(索引):索引超出范围:索引应小于 7:7

如何制作flutter showDialog、AlertDialog屏障 colored颜色 渐变

如何在 flutter 中使用带有有效负载数据的重定向来执行 firebase 推送通知.?

改变步进器的线条 colored颜色 Flutter

更改文本字段Flutter 中最大字母的 colored颜色

在 Flutter 中将提取的 Listview.builder 与两个列表一起使用