SingleChildScrollView 在 ErrorWidget.builder 中不起作用

问题描述 投票:0回答:1

我想向用户显示所有出现的错误。

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";
  }
}

但是小部件没有滚动。

我尝试将 SingleChildScrollView 包装在 Scaffold 中,但不起作用。

我应该怎样做才能使其可滚动?

flutter error-handling scroll
1个回答
0
投票

替换

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
的小部件。希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.