Flutter 当时间是23:59:59时,如何更新小部件?

Flutter 当时间是23:59:59时,如何更新小部件?,flutter,dart,Flutter,Dart,在完成一个事件后..我想显示我的文本小部件,并在23:59:59时更改该小部件。。。到目前为止,我已经完成了这段代码 DateFormat("HH:mm:ss").format(DateTime.now()) =="23:59:59" ? Text("After") : Text("Before") 但问题是。。。每当我关闭我的应用程序,然后重新打开应用程序。。。小部件不会从文本(“之前”)

在完成一个事件后..我想显示我的
文本
小部件,并在23:59:59时更改该小部件。。。到目前为止,我已经完成了这段代码

DateFormat("HH:mm:ss").format(DateTime.now()) =="23:59:59"
                          ? Text("After")
                          : Text("Before")

但问题是。。。每当我关闭我的应用程序,然后重新打开应用程序。。。小部件不会从
文本(“之前”)
更改为
文本(“之后”)
,尽管时间已经是23:59:59。。。这个小部件只有在我点击一个事件并且应用程序仍然打开时才会改变。。。有没有一种方法可以在不发生任何额外事件的情况下解决该问题?

您的
文本
位于
构建
方法中。此方法仅适用于小部件的更新,例如,如果状态发生变化(这就是为什么当您执行事件单击时小部件会更新,我认为您的小部件会在单击后重建)。但widget对
DateTime.now()
一无所知。因此,您应该将
DateTime.now
设置为每秒更新一次

导入“包装:颤振/材料.省道”;
导入“包:intl/intl.dart”;
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
家:脚手架(
正文:安全区(
孩子:填充(
填充:边缘设置。全部(16),
子项:beforefafter(),
),
),
),
);
}
}
类BeforeAfter扩展StatefulWidget{
@凌驾
_BeforeAfterState createState()=>\u BeforeAfterState();
}
类(BeforeAfterState扩展状态之前){
String time=DateFormat(“HH:mm:ss”).format(DateTime.now());//我们将更新的时间
@凌驾
void initState(){
super.initState();
updateTime();
}
void updateTime(){
未来。延迟(持续时间(秒:1),(){
updateTime();
设置状态(){
time=DateFormat(“HH:mm:ss”).format(DateTime.now());//更新时间
});
});
}
@凌驾
小部件构建(构建上下文){
返回列(子项:[
时间==“12:13:00”?文本(“之后”):文本(“之前”),
文本(时间)
]);//将时间与某些值进行比较
}
}
void main(){
runApp(MyApp());
}

Gif它是如何工作的


那么,如果您在00:00:00之前或之后打开应用程序,您希望看到什么?我希望在“之后”打开应用程序时,您如何确定确切的秒数是相似的?如果您想在11:59显示该文本,请从支票中删除第二个?我不太确定。。我只是想。。是否有办法在23:59:59之后显示另一个小部件您应该修改该问题,因为您说过在23:59:59之后显示另一个小部件,但代码将在23:59:59显示。此外,每天都有
23:59:59
,所以连线上说你想在
23:59:59
之前或之后安装一个小部件。我输入
DateTime后它就可以工作了。现在
来声明并重新安装应用程序。。非常感谢您的帮助:DD