【发布时间】:2021-02-26 18:52:12
【问题描述】:
我有一组连接到我的云燃烧的卡片,这些卡显示了何时选择与每张卡相关的图标。但是,我想要一张卡片,告诉用户在没有其他卡片显示时选择一个图标。这是我的代码:
class Tips extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: StreamBuilder(
stream:
FirebaseFirestore.instance.collection('moodIcons').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) return Text('Loading data... Please Wait');
var currentCards = 0;
return Container(
child: new ListView(
children: snapshot.data.documents.map<Widget>((DocumentSnapshot document) {
if (document.data()['display'] == true) {
//code to display each card when specific icon is chosen
} else {
if (currentCards < 1) {
currentCards++;
return new Card(
child: new Column(
children: <Widget>[
new Container(
width: 400.0,
height: 45.0,
child: new Text(
"Choose an icon to show a tip!",
),
],
));
目前,卡片一直显示,但我希望它在单击图标时消失。单击图标时,display 的值变为 true。
我尝试使用一个计数器,如果display 的值为真,那么它将向计数器加一,然后如果计数器大于0,则else 语句中的卡将不会显示。但是,这不起作用,因为我无法从 if 语句中返回计数器的值。
任何帮助将不胜感激!
【问题讨论】: