我想向用户显示所有出现的错误。
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 中,但不起作用。
我应该怎样做才能使其可滚动?
替换
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
的小部件。希望有帮助。