如何在颤动的按钮上显示时间
how to display time on buttons in fluuter
要求:
我有 2 个按钮,我希望当我单击按钮 1 时,其文本应替换为当前时间,按钮 2 也是如此。
问题:
问题是当我点击按钮 1 时,它的文本变为当前时间,但是当我在几分钟后点击按钮 2 时,它的文本变为与按钮 1 相同的时间。
这是我的代码
void initState() {
// TODO: implement initState
super.initState();
_getTime();
}
void _getTime() {
final String formattedDateTime =
DateFormat('kk:mm:ss').format(DateTime.now()).toString();
setState(() {
getTime = formattedDateTime;
print(getTime[0]);
});
}
var timeInText="Time in";
var timeOutText="Time out";
\button 1
RoundedButton(icon: Icon(Icons.timer,color: Colors.white),
text:timeInText,
bgcolor: Colors.blue[500],
press:(){
setState(() {
timeInText=getTime;
});
})
//button 2
RoundedButton(icon: Icon(Icons.timer,color: Colors.white),
text:timeoutText,
bgcolor: Colors.blue[500],
press:(){
setState(() {
timeoutText=getTime;
});
})
请帮助修复它。谢谢
你得到了一次,当按钮被点击时。我认为你也必须在 setState 中编写你的方法代码。并获取当前时间,希望对您有所帮助
您只在 initState
中调用 _getTime()
。时间在初始化时存储,之后永远不会更新。由于它从未更新,因此一直显示相同的时间。
要解决此问题,请向您的两个 onPressed 函数添加 _getTime()
调用,如下所示:
onPressed: () {
_getTime();
setState(() {
timeoutText = getTime;
});
}),
要求: 我有 2 个按钮,我希望当我单击按钮 1 时,其文本应替换为当前时间,按钮 2 也是如此。
问题: 问题是当我点击按钮 1 时,它的文本变为当前时间,但是当我在几分钟后点击按钮 2 时,它的文本变为与按钮 1 相同的时间。
这是我的代码
void initState() {
// TODO: implement initState
super.initState();
_getTime();
}
void _getTime() {
final String formattedDateTime =
DateFormat('kk:mm:ss').format(DateTime.now()).toString();
setState(() {
getTime = formattedDateTime;
print(getTime[0]);
});
}
var timeInText="Time in";
var timeOutText="Time out";
\button 1
RoundedButton(icon: Icon(Icons.timer,color: Colors.white),
text:timeInText,
bgcolor: Colors.blue[500],
press:(){
setState(() {
timeInText=getTime;
});
})
//button 2
RoundedButton(icon: Icon(Icons.timer,color: Colors.white),
text:timeoutText,
bgcolor: Colors.blue[500],
press:(){
setState(() {
timeoutText=getTime;
});
})
请帮助修复它。谢谢
你得到了一次,当按钮被点击时。我认为你也必须在 setState 中编写你的方法代码。并获取当前时间,希望对您有所帮助
您只在 initState
中调用 _getTime()
。时间在初始化时存储,之后永远不会更新。由于它从未更新,因此一直显示相同的时间。
要解决此问题,请向您的两个 onPressed 函数添加 _getTime()
调用,如下所示:
onPressed: () {
_getTime();
setState(() {
timeoutText = getTime;
});
}),