在 Flutter Gridview 中居中内容

Center content inside Flutter Gridview

我一直试图在 Flutter 中将 GridView 的内容居中,但我真的 运行 没有想法,无法让它工作...

我想将 GridView 的内容置于白色容器的中心,但它始终与 container/GridView 项目的顶部对齐。

代码如下:

网格视图

body: SafeArea(
    child: Container(
      width: double.infinity,
      child: GridView.count(
        // childAspectRatio: ,
        crossAxisCount: _orientationRows,
        children: <Widget>[
          Container(
            width: double.infinity,
            height: double.infinity,
            child: Center(
              child: MaterialButton(
                child: MainIconBotton(
                  imageURL: "assets/icons/video.png",
                  label: "mainIcon.mp4".tr(),
                ),
                onPressed: () {
                  Navigator.push(
                    context,
                    MaterialPageRoute(builder: (context) => ScreenVideo()),
                  );
                },
              ),
            ),
          ), 
/// (and so on)

MainIcon 小部件(= Gridview 项目的内容)

return Container(
  margin: EdgeInsets.all(7),
  padding: EdgeInsets.all(9),
  decoration: BoxDecoration(
      borderRadius: BorderRadius.circular(15), color: Colors.white),
  child: Column(
    crossAxisAlignment: CrossAxisAlignment.center,
    mainAxisAlignment: MainAxisAlignment.spaceAround,
    children: <Widget>[
      Expanded(
          flex: 2,
          child: Image.asset(
            imageURL,
          )),
      SizedBox(
        height: 5,
      ),
      Expanded(
        child: Text(
          label,
          textAlign: TextAlign.center,
          softWrap: true,
          style: TextStyle(
            fontWeight: FontWeight.bold,
            fontSize: 22,
          ),
        ),
      )
    ],
  ),
);

希望有人能提供帮助 - 非常感谢! 克里斯

在网格视图中取一个列标签而不是中心。

body: SafeArea(
child: Container(
  width: double.infinity,
  child: GridView.count(
    // childAspectRatio: ,
    crossAxisCount: _orientationRows,
    children: <Widget>[
      Container(
        width: double.infinity,
        height: double.infinity,
        child: Column(
        crossAxisAlignment: CrossAxisAlignment.center,
        mainAxisAlignment: MainAxisAlignment.center,
          children:[MaterialButton(
            child: MainIconBotton(
              imageURL: "assets/icons/video.png",
              label: "mainIcon.mp4".tr(),
            ),
            onPressed: () {
              Navigator.push(
                context,
                MaterialPageRoute(builder: (context) => ScreenVideo()),
              );
            },
          )]
        ),
      ),