我有返回CircularProgressIndicator()
的小部件
它显示在屏幕左上方的圆形标记上。
但是我想把它作为覆盖并放在屏幕的中央。
我正在检查小部件列表,但找不到应该用作覆盖的小部件。
我应该放在哪一层?
现在我的代码是这样的,加载时显示CircularProgressIndicator
而不是ListView
但是我想把CircularProgressIndicator()
放在ListView
上
Widget build(BuildContext context) {
if(loading) {
return CircularProgressIndicator();
}
return ListView.builder(
controller: _controller,
itemCount: articles.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(articles[index]),
);
},
);
}
非常感谢您的回答。
我用下面的堆栈小部件解决。
起初,我尝试使用叠加层,但遇到一些错误。
因此,我只使用堆栈。
@override
Widget build(BuildContext context) {
Widget tempWidget = new CircularProgressIndicator();
if(loading) {
tempWidget = new CircularProgressIndicator();
}
else {
tempWidget = new Center();//EmptyWidget
}
return Stack(
children: <Widget>[
ListView.builder(
controller: _controller,
itemCount: articles.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(articles[index].title),
onTap: () => onTapped(context,articles[index].url),
);
},
),
Center(
child: tempWidget
),
]
);
}
最佳答案
Stack(
children: <Widget>[
ListView.builder(
itemBuilder: (BuildContext context, int index) {
return Container(
height: 100,
color: Colors.red,
);
},
itemCount: 10,
),
Center(
child: CircularProgressIndicator(),
),
],
)
关于flutter - 当特定条件为真时,如何在抖动中显示进度指示器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59083786/