flutter 从列的父级中心开始列

eagi6jfj  于 2023-02-09  发布在  Flutter
关注(0)|答案(3)|浏览(122)

我试图在父列中实现一个列,但列的第一个子列应该在列的父列中垂直居中,通过使用MainAxisAlignment.center,整个列将居中,如果列中有多个子列,则第一个子列不会居中。
以下是我尝试过的方法。

child: CircleAvatar(
                          radius: 146,
                          backgroundColor: Colors.black87,
                          child: Column(
                            mainAxisAlignment: MainAxisAlignment.center,
                            children: [
                              Text('11:06',
                                  style: TextStyle(
                                    fontSize: 70,
                                  )),
                              Icon(Icons.restart_alt),
                            ],
                          ),
                        ),

这是我得到的。enter image description here正如你所看到的,文本不在中心,因为图标把它向上推了一点。

mwg9r5ms

mwg9r5ms1#

您可以将您的列 Package 在另一个列中,该列包含一个Expanded小部件,后面跟着您的列,也 Package 在一个Expanded小部件中。

sqxo8psd

sqxo8psd2#

你可以使用一些填充。我不知道有什么方法可以得到父对象的大小,并像CSS中那样做50%,所以你必须记住这一点。但是你可以用MediaQuery.of(context).size.height相对于视口高度进行计算。

rqcrx0a6

rqcrx0a63#

Stack内部使用Align(不完美,仍需调整)。

CircleAvatar(
...
  child: Stack(
    alignment: Alignment.center,
    children: const [
      Text('11:06', style: TextStyle(fontSize: 70)),
      Align(
        alignment: Alignment(0, 0.4),
        child: Icon(Icons.restart_alt),
      ),
    ],
  ),
)

相关问题