如何在PreferredSizeWidget中垂直居中一个小部件?

6

我想要在我的AppBarbottom:部分垂直居中一个文本。

我已经尝试过以下方法:
1. 在Center(...)小部件中包装文本
2. 在Column(...)中包装文本,并使用crossAxisAlignment: CrossAxisAlignment.center

bottom:部分是PreferredSizeWidget,不提供任何格式化小部件的内容。

appBar: new AppBar(
      actions: <Widget>[
        IconButton(
          icon: Icon(Icons.settings),
          onPressed: () {
            print("Settings Icon");
          },
        ),
      ],
      bottom: PreferredSize(
        preferredSize: Size(130.0, 130.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.center,
          children: <Widget>[
            new Text(
              'N/A',      
           ),
          ],
        ),
      ),
    ),

我在这里找到了一个问题:https://github.com/flutter/flutter/issues/16262,其中文本应该居中,但是重现代码对我没有用。
文本应该出现在类似于红线的位置(见图像)。

AppBar

谢谢!

1个回答

4

PreferredSizeWidget 不会对其子元素施加大小约束,因此您必须使用具有定义高度的小部件来包装 Column 以添加对齐。

此外,应该使用 mainAxisAlignment,因为这是 Column 中的垂直对齐方式。

  bottom: PreferredSize(
    preferredSize: Size(130.0, 130.0),
    child: Container(
      height: 130,
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          new Text(
            'N/A',      
        ),
        ],
      ),
    ),
  )

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接