如果 Flutter 中的网格列表为空,则插入一个 Text()
Insert a Text() if a Grid List is Empty in Flutter
我正在开发一个 Flutter 应用程序,在我的 Main
路线中,我有一个 Grid List
,填充了由数据库检索的元素。
当 Grid 为空时,我想布局一个 Text()
消息,或类似的东西,
永久。
我用
填充我的列表
list() {
return Container(
child: FutureBuilder(
future: pets,
builder: (context, snapshot) {
if (!snapshot.hasData || snapshot.data == null) {
return emptyGrid();
}
else
return imageGrid(snapshot.data);
},
),
);
}
其中 emptyGrid 是
Container emptyGrid() {
return Container(
child: Center(
child: Column(
children: <Widget>[
Text("No Data Found")
],
),
),
);
}
问题是,emptyGrid
布局正确,但之后立即消失。
试试这个:
Widget build(BuildContext context) {
return new Container(
child: new FutureBuilder(
future: FirebaseDatabase.instance.reference().child("table").once(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.hasData) {
if (snapshot.data!=null) {
return new Column (
children: imageGrid(snapshot.data),
);
} else {
return Container(
child: Center(
child: Column(
children: <Widget>[
Text("No Data Found")
],
),
),
);
}
}
}
)
);
}
您需要修改您的 list()
如下:
您需要检查列表长度是否为零。
list() {
return Container(
child: FutureBuilder(
future: pets,
builder: (context, snapshot) {
if (!snapshot.hasData || snapshot.data == null) {
return Text('Loading.....');
} else if (snapshot.data.length == 0) {
return emptyGrid();
} else {
return imageGrid(snapshot.data);
}
},
),
);
}
我正在开发一个 Flutter 应用程序,在我的 Main
路线中,我有一个 Grid List
,填充了由数据库检索的元素。
当 Grid 为空时,我想布局一个 Text()
消息,或类似的东西,
永久。
我用
list() {
return Container(
child: FutureBuilder(
future: pets,
builder: (context, snapshot) {
if (!snapshot.hasData || snapshot.data == null) {
return emptyGrid();
}
else
return imageGrid(snapshot.data);
},
),
);
}
其中 emptyGrid 是
Container emptyGrid() {
return Container(
child: Center(
child: Column(
children: <Widget>[
Text("No Data Found")
],
),
),
);
}
问题是,emptyGrid
布局正确,但之后立即消失。
试试这个:
Widget build(BuildContext context) {
return new Container(
child: new FutureBuilder(
future: FirebaseDatabase.instance.reference().child("table").once(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.hasData) {
if (snapshot.data!=null) {
return new Column (
children: imageGrid(snapshot.data),
);
} else {
return Container(
child: Center(
child: Column(
children: <Widget>[
Text("No Data Found")
],
),
),
);
}
}
}
)
);
}
您需要修改您的 list()
如下:
您需要检查列表长度是否为零。
list() {
return Container(
child: FutureBuilder(
future: pets,
builder: (context, snapshot) {
if (!snapshot.hasData || snapshot.data == null) {
return Text('Loading.....');
} else if (snapshot.data.length == 0) {
return emptyGrid();
} else {
return imageGrid(snapshot.data);
}
},
),
);
}