Flutter 无法将行控件居中

Flutter 无法将行控件居中,flutter,dart,Flutter,Dart,我在页面底部有一个行小部件,无法居中。我尝试了所有的mainAxisAlignment和crossAxisAlignment,并将其包装在Align小部件中,然后将alignment设置为alignment.center,它仍然位于页面的左边缘。我什么都试过了,真的卡住了。任何帮助都将不胜感激。 @覆盖 小部件构建(构建上下文){ 返回脚手架( appBar:appBar( 背景颜色:颜色。浅蓝色, 标题:对, 标高:5, 标题:文本(“病理”), 主体:容器( 装饰:新盒子装饰(颜色:颜色。

我在页面底部有一个
小部件,无法居中。我尝试了所有的
mainAxisAlignment
crossAxisAlignment
,并将其包装在
Align
小部件中,然后将
alignment
设置为
alignment.center
,它仍然位于页面的左边缘。我什么都试过了,真的卡住了。任何帮助都将不胜感激。

@覆盖
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
背景颜色:颜色。浅蓝色,
标题:对,
标高:5,
标题:文本(“病理”),
主体:容器(
装饰:新盒子装饰(颜色:颜色。黑色),
儿童:安全区(
子:列(
crossAxisAlignment:crossAxisAlignment.stretch,
儿童:[
扩大(
弹性:2,
子:新堆栈(
儿童:[
新容器(
对齐:对齐.center,
子项:_cameraPreviewWidget(上下文),
),
新对齐(
对齐:对齐.center,
儿童:手势检测器(
子:堆栈(子:[
定位(
顶部:yPosition,
左:xPosition,
子:容器(
//填充:仅限边缘设置(顶部:200.0,左侧:20.0),
高度:MediaQuery.of(context).size.height/3,
宽度:MediaQuery.of(context).size.width/3,
儿童:
Image.asset('assets/images/crosshair.png'),
),
),
]),
onPanUpdate:(tapInfo){
设置状态(){
xPosition+=tapInfo.delta.dx;
yPosition+=tapInfo.delta.dy;
});
}),
),
],
),
),
尺寸箱(高度:5),
划船(
mainAxisSize:mainAxisSize.min,
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
纵队(
crossAxisAlignment:crossAxisAlignment.center,
儿童:[
_cameraTogglesRowWidget(),
_mlTextWidget(),
],
),
_captureControlRowWidget(上下文),
//尺寸箱(宽度:50),
],
),
尺寸箱(高度:5),
],
),
),
),
);
}

这通常是因为您试图居中的小部件实际上正在拉伸其容器。因为它是屏幕的大小,所以它的内容会粘在左边。您应该使用具有的颤振检查器来实际查看您的行有多大。然后一切都会变得更有意义

在代码中,
正在拉伸。试一试

Row(mainAxisSize: MainAxisSize.min
这应该使它不会生长。或者,您可以使行保持较大,但使其子行居中:

Row(mainAxisAlignment: MainAxisAlignment.Center

当然,通过这种方法,孩子们将在中心彼此靠近。您可以在它们之间使用一个
SizedBox
,或者使用其他方式将它们隔开。

我尝试了您的建议,但行项目仍然没有移动。我尝试使用<代码> SZEDBOX宽度为50,并且在中间得到相机图标。有没有更好的方法呢?我是否应该将
扩展的
小部件改为
容器
?好的,您可以尝试使用我在
行中所说的两种内容。扩展的
是不相关的,它将这一行推到下面,这很好。现在我看到了
Spacer()
,去掉它,它会使您的
拉伸,即使您使用
MainAxisSize.min
我尝试了这两种方法,并移除了
Spacer()
。如果你想看的话,我更新了代码和图片。仍然没有居中。我想我将不得不使用
SizedBox
作为最后手段。只是不知道它是否会在所有设备上居中。好吧,如果你创建一个代码笔,我会在那里修复它:如果你创建一个dartpad示例,我会为你修复它。
Row(mainAxisAlignment: MainAxisAlignment.Center