[英]How to center a widget inside a column inside of a SingleChildScrollView
我有这个屏幕,上面有一个 searchWidget,下面有一个列表。 但是列表数据是在searchWidget
中查询之后出现的,在等待获取数据时,我想在屏幕中心呈现一个ActivityIndicator
cator。 但是进度指示器似乎没有占用屏幕空间的searchWidget
的正下方,如果我将它包装在Expanded
中,则会出现错误
body: SingleChildScrollView(
physics: BouncingScrollPhysics(),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
SearchWidget(
hintText: 'Search',
textEditingController: _textEditingController,
onCancel: () {
setState(() {
_textEditingController.text = '';
data = [];
});
},
onSubmitted: (val) {
onSubmitted(val);
}),
_isLoading
? (Container(
child: Center(
child: CupertinoActivityIndicator(
radius: 15,
),
),
))
: (data.length == 0
? SizedBox()
: Padding(
padding:
const EdgeInsets.only(top: 8, right: 8, left: 8),
child: ListView.builder(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: data.length,
itemBuilder: (ctx, i) =>
ListItem(item: data[i]),
),
))
],
),
),
尝试扩展:
_isLoading
? (Expanded(
child: Center(
child: CupertinoActivityIndicator(
radius: 15,
),
),
))
将CupertinoActivityIndicator
放在Column
中,然后使用Spacer
将其放在屏幕中间。 像这样:
Column(
children: [
Spacer(),
Container(
child: Center(
child: CupertinoActivityIndicator(
radius: 15,
),
),
),
Spacer()
]
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.