繁体   English   中英

如何在 SingleChildScrollView 内的列内居中小部件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM