为什么CrossAxisAligment在Flex,Row和Column中不起作用?

时间:2019-01-07 11:37:06

标签: dart flutter flutter-layout

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(
          'Flutter Demo'
        ),
      ),
      body: Row(
        mainAxisAlignment: MainAxisAlignment.center,
        crossAxisAlignment: CrossAxisAlignment.center,
        children: <Widget>[
          Text(
            'Hell World!'
          )
        ],
      )
    );
  }
}

为什么文本Hell World仅在水平居中而不是垂直居中,因为我也指定了CrossAxisAligment

是因为这个原因:Issue

1 个答案:

答案 0 :(得分:3)

Row默认情况下不会占用所有可用的垂直空间。它仅占用所需的空间(但占用所有水平空间)。

强制行垂直扩展应该可以解决问题:

body: SizedBox.expand(
  child: Row(...),
),