我正在创建一个全屏加载程序,如果用户不将任何小部件传递给此函数,我想在其中设置默认的圆形进度指示器..
但是显示错误
我的错误是什么
static void showFullScreenDialog({Widget widget=Text('hello')//showing an error} ){
showDialog(
context: Get.overlayContext!,
barrierDismissible: false,
builder: (_) => PopScope(
canPop: false,
child: Container(
height: double.infinity,
width: double.infinity,
color: Colors.transparent,
child: Center(child: widget,),
)),
);
}
您还没有分享错误消息,但我可以猜测问题的根源。当创建一个小部件作为函数参数中的默认值时,需要在构建时创建该小部件。然而,
Text('hello')
是在运行时创建的。
static void showFullScreenDialog({
Widget Function()? widgetBuilder,
}) {
showDialog(
context: Get.overlayContext!,
barrierDismissible: false,
builder: (_) => PopScope(
canPop: false,
child: Container(
height: double.infinity,
width: double.infinity,
color: Colors.transparent,
child: Center(
// Use widgetBuilder if provided, otherwise show default CircularProgressIndicator
child: widgetBuilder != null
? widgetBuilder()
: const CircularProgressIndicator(),
),
),
),
);
}