java中showdialog返回值_Flutter:showDialog:build函数返回null

在尝试使用Flutter的showDialog时,将AlertDialog内容放入新的StatefulWidget导致构建函数返回null错误。错误提示表明build方法不应返回null。问题出现在LastVacDialogState的build方法中,它只返回了AlertDialog,而没有正确地包裹在一个Widget中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我有一个StatefulWidget . 然后,当我单击一个按钮时,它会显示一个警告对话框 . 当我实施时:

onTap: () {

showDialog(

context: context,

builder: (BuildContext context) {

return AlertDialog(

title: Text("Hello"),

);

}

}

一切正常 . 但是当我将构建器中的内容转移到另一个StatefulWidget时,会发生以下错误:

A build function returned null.

I/flutter ( 3647): The offending widget is: Builder

I/flutter ( 3647): Build functions must never return null. To return an empty space that causes the building widget to

I/flutter ( 3647): fill available room, return "new Container()". To return an empty space that takes as little room as

I/flutter ( 3647): possible, return "new Container(width: 0.0, height: 0.0)".

这是代码:

Here is the calling StatefulWidget:

onTap: () {

showDialog(

context: context,

builder: (BuildContext context) {

LastVacDialog(

currentDose: currDose,

currentDate: currDate,

currentIndex: i,

setValue: changeDoseValueAndDate,

);

},

);

},

Here is the new StatefulWidget:

class LastVacDialog extends StatefulWidget {

LastVacDialog({

this.currentDose,

this.currentDate,

this.setValue,

this.currentIndex,

});

final int currentDose;

final DateTime currentDate;

final void Function(int, DateTime, int) setValue;

final currentIndex;

@override

LastVacDialogState createState() => new LastVacDialogState();

}

class LastVacDialogState extends State {

int _dose;

DateTime _today;

@override

Widget build(BuildContext context) {

return AlertDialog(

title: Text("Last Dose"),

);

}

}

我的代码有问题吗?为简单起见,我省略了一些变量 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值