Flutter:如何让小部件在几秒后消失?
Flutter: How to make a widget disappear after a few seconds?
我想让我的小部件在几秒钟后消失,但它一直卡在等待中。
if (unread != 0 && (getMessageObjects.length - count) == unread - 1) {
_groupedMessages.add(
FutureBuilder(
future: Future.delayed(Duration(milliseconds: 500)),
builder: (c, s) => s.connectionState == ConnectionState.done
? Container(
child: Chip(
label: Text('Finished'),
),
)
: Center(
child: Chip(
label: Text('${unread.toString()} unread messages'),
),
),
),
);
// reset
}
_groupedMessages 是一个列表。不知道有没有其他方法,如果有请告诉我。
您的代码看起来很奇怪,但我们需要查看其余代码。
首先想到的是,您确定未来不会被不断地重建,因此没有机会完成吗?
您要显示一条指示 500 毫秒计数的消息然后将其隐藏,这似乎也很奇怪。
还有为什么人为延迟?
我猜您需要从服务器获取计数,在这种情况下,未来应包含对服务器的调用并在返回结果时完成。
我希望 UI 显示消息 'fetching messages',然后在获取完成后更改为 'unread messages x'。
但鉴于您提供的上下文数量有限,这些只是猜测。
我想让我的小部件在几秒钟后消失,但它一直卡在等待中。
if (unread != 0 && (getMessageObjects.length - count) == unread - 1) {
_groupedMessages.add(
FutureBuilder(
future: Future.delayed(Duration(milliseconds: 500)),
builder: (c, s) => s.connectionState == ConnectionState.done
? Container(
child: Chip(
label: Text('Finished'),
),
)
: Center(
child: Chip(
label: Text('${unread.toString()} unread messages'),
),
),
),
);
// reset
}
_groupedMessages 是一个列表。不知道有没有其他方法,如果有请告诉我。
您的代码看起来很奇怪,但我们需要查看其余代码。
首先想到的是,您确定未来不会被不断地重建,因此没有机会完成吗?
您要显示一条指示 500 毫秒计数的消息然后将其隐藏,这似乎也很奇怪。
还有为什么人为延迟?
我猜您需要从服务器获取计数,在这种情况下,未来应包含对服务器的调用并在返回结果时完成。
我希望 UI 显示消息 'fetching messages',然后在获取完成后更改为 'unread messages x'。
但鉴于您提供的上下文数量有限,这些只是猜测。