定位的小部件工作但对齐小部件在颤动的堆栈小部件中不起作用

positioned widget work but align widget don't work in stack widget in flutter

为什么当我尝试在堆栈中使用对齐时他的 child 不移动, 但是定位它的工作(我想使用它,因为我不能在所有移动维度上居中)

这是我的代码:

 @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: _launchURL,
      child: Container(
        child: Container(
          child: Stack(children: <Widget>[
            Column(
              children: <Widget>[
                Container(
                  decoration: new BoxDecoration(
                    border: Border.all(color: Colors.black12),
                    borderRadius: BorderRadius.all(Radius.circular(13)),
                    shape: BoxShape.rectangle,
                    color: Colors.white,
                    boxShadow: <BoxShadow>[
                      BoxShadow(
                        color: Colors.black26,
                        offset: Offset(3, 7),
                        blurRadius: 7.0,
                      ),
                    ],
                  ),
                  height: 140,
                  width: MediaQuery.of(context).size.width * 0.42,
                ),
              ],
            ),
         // this the code when I use the align widget
         // Align(
         //   alignment: Alignment.bottomCenter,
            Positioned(
              top: MediaQuery.of(context).size.width * 0.42 / 7,
              left: 40,
              child: Container(
                child: Column(
                  children: <Widget>[
                    Container(
                      decoration: new BoxDecoration(
                        borderRadius: BorderRadius.all(Radius.circular(16)),
                        shape: BoxShape.rectangle,
                        color: Colors.transparent,
                        boxShadow: <BoxShadow>[
                          BoxShadow(
                            color: Colors.grey,
                            offset: Offset(2, 5),
                            blurRadius: 5.0,
                          ),
                        ],
                      ),
                      child: ClipRRect(
                        borderRadius: new BorderRadius.circular(16.0),
                        child: Image.asset(
                          "assets/RoundStyle/" + socialBadge + ".png",
                          height: 60,
                          width: 60,
                        ),
                      ),
                    ),
                    SizedBox(
                      height: 20,
                    ),
                    MyText3(
                      "@hisname",
                      color: Colors.grey,
                    )
                  ],
                ),
              ),
            ),
          ]),
        ),
      ),
    );
  }

就是这样谢谢你:)

你不需要 StackColumn 如果你想让你的小部件在 Container 内居中,只需将它添加为 child.

   @override
  Widget build(BuildContext context) {
   return GestureDetector(
   onTap: _launchURL,
   child:   Container(
              decoration: new BoxDecoration(
                border: Border.all(color: Colors.black12),
                borderRadius: BorderRadius.all(Radius.circular(13)),
                shape: BoxShape.rectangle,
                color: Colors.white,
                boxShadow: <BoxShadow>[
                  BoxShadow(
                    color: Colors.black26,
                    offset: Offset(3, 7),
                    blurRadius: 7.0,
                  ),
                ],
              ),
              height: 140,
              width: MediaQuery.of(context).size.width * 0.42,
              child: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  Container(
                    decoration: new BoxDecoration(
                      borderRadius: BorderRadius.all(Radius.circular(16)),
                      shape: BoxShape.rectangle,
                      color: Colors.transparent,
                      boxShadow: <BoxShadow>[
                        BoxShadow(
                          color: Colors.grey,
                          offset: Offset(2, 5),
                          blurRadius: 5.0,
                        ),
                      ],
                    ),
                    child: ClipRRect(
                    borderRadius: new BorderRadius.circular(16.0),
                    child: Image.asset(
                      "assets/RoundStyle/" + socialBadge + ".png",
                      height: 60,
                      width: 60,
                    ),
                  ),
                ),
                SizedBox(
                  height: 20,
                ),
                MyText3(
                  "@BensebaBillal",
                  color: Colors.grey,
                )
                ],
              ),
            ),
            );
     }