【发布时间】:2020-10-29 08:35:19
【问题描述】:
我有一个从 Firebase 获取数据的活动屏幕,当数据库不提供数据时,我试图显示一条文本消息,例如“还没有活动”。
我尝试使用三元运算符条件来检查数据库是否为空并且它可以工作,但是,问题是当我进入活动屏幕并且它有数据时,它仍然显示消息大约 1 秒钟然后显示活动屏幕,所以,我想知道是否有更好的方法来实现这一点。
希望这是有道理的。
查看下面的代码
@override
Widget build(BuildContext context) {
return Scaffold(
body: RefreshIndicator(
onRefresh: () => _setupActivities(),
child: _activities.isEmpty
? Center(
child: Text(
'Aun no Tienes Notificaciones',
style: ktextTitlesStyle.copyWith(
color: Colors.black,
fontSize: responsive.height(context) / 50),
),
)
: ListView.builder(
itemCount: _activities.length,
itemBuilder: (BuildContext context, int index) {
Activity activity = _activities[index];
return _buildActivity(activity);
},
),
),
);
}
}
【问题讨论】:
-
所以你的
_activities是一个列表?您从 Firebase 获取数据,然后将数据放入您的_activities或什么? -
是的,它是一个列表,这是正确的,每次用户获得一个赞时,该数据都会保存在数据库中,然后如果用户没有得到该数据,则将该数据提取到活动屏幕中任何喜欢,活动屏幕将是空白的,这正是问题所在,我想在活动屏幕为空时向用户展示一些东西,但我遇到的问题是,当他们进入活动屏幕并且它有数据时,它仍然显示我上面提到的消息大约 1 或 2 秒,然后显示活动屏幕,我希望该消息仅显示没有数据的地方。
-
我认为使用
StreamBuilder()可能会有所帮助 -
为什么它可以与 StreamBuilder() 一起使用?我不明白为什么我需要 StreamBuilder