首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Flutter Row中,有没有一种方法可以在使用MainAxisAlignment.spaceBetween时将子项居中对齐?

在Flutter Row中,使用MainAxisAlignment.spaceBetween时,子项是无法居中对齐的。MainAxisAlignment.spaceBetween会在子项之间均匀分配空白空间,使得子项之间的间距相等。如果想要在使用MainAxisAlignment.spaceBetween时将子项居中对齐,可以使用其他的布局方式。

一种方法是使用Expanded包裹子项,并将子项的flex属性设置为1。这样子项会均匀地占据剩余的空间,从而实现居中对齐。示例代码如下:

代码语言:txt
复制
Row(
  mainAxisAlignment: MainAxisAlignment.spaceBetween,
  children: [
    Expanded(
      flex: 1,
      child: Container(
        // 第一个子项的内容
      ),
    ),
    Expanded(
      flex: 1,
      child: Container(
        // 第二个子项的内容
      ),
    ),
    Expanded(
      flex: 1,
      child: Container(
        // 第三个子项的内容
      ),
    ),
  ],
)

另一种方法是使用Spacer组件。Spacer是一个占据可用空间的组件,可以用来平均分配剩余空间。将Spacer放置在需要居中对齐的子项之间,即可实现居中对齐。示例代码如下:

代码语言:txt
复制
Row(
  mainAxisAlignment: MainAxisAlignment.spaceBetween,
  children: [
    Container(
      // 第一个子项的内容
    ),
    Spacer(),
    Container(
      // 第二个子项的内容
    ),
    Spacer(),
    Container(
      // 第三个子项的内容
    ),
  ],
)

以上两种方法都可以在使用MainAxisAlignment.spaceBetween时实现子项的居中对齐。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

第128期:Flutter的flex布局组件(row 和 column)

Row组件通常不会考虑到内部元素的滚动问题,如果Row的子组件超过可用空间的大小,则会被视为一种错误。...如果我们有几个组件,并且希望空间不足的时候有个滚动效果,那么我们就可以考虑使用ListView组件。 Row组件类有这么几个属性: children:要进行布局的子组件。...如果我们只有一个组件,在用Row组件进行布局的时候,我们通常可以让它居中: @override Widget build(BuildContext context) { return Scaffold...Cloumn组件 Cloumn组件主要用来子组件进行垂直方向上的布局。想要要使子组件展开以填充可用的垂直空间,我们可以子组件包裹在Expanded件。...最后 掌握了这些内容,就算是掌握了flutter的Cloumn组件 和 Row 组件。

1.2K20

Flutter学习-09- Flutter学习之组件布局

x坐标不受影响,只受y坐标影响,因为Row是一个横向布局的组件,我们只能改变它的y方向 alignment: Alignment(1,-1), 复制代码 alignment: Alignment(-...内部所有子组件就是居中,默认是居左 mainAxisAlignment: MainAxisAlignment.end, 复制代码 MainAxisAlignment.end 表示从末尾对齐 mainAxisAlignment...: MainAxisAlignment.spaceBetween, 复制代码 中间间隔相等 我们可以进行嵌套使用 class rowDemo extends StatelessWidget {...我们可以设置x,y的大小来制定组件位置 alignment: Alignment(1,-0.5), 复制代码 对于Stack组件内部子部件不同于Row和Column使用mainAxisAlignment...crossAxisAlignment,设置它的位置,上对齐对齐中间对齐等我们看下效果 mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment

42400

Flutter系列之Flex布局详解

Flutter 是 Google 推出的跨平台 UI 框架,可以快速地 Android 和 IOS 上构建高质量的应用程序,其主要特点是 Flutter 具有快速开发的能力、富有表现力和灵活的 Ui...以及良好的原生性能,本篇文章主要介绍 Flutter 的 Flex 布局,如下: Flex基础 Flex常用设置 Row和Column Expanded和Flexible Spacer Flex基础...Flex 布局方式已经广泛使用在前端、小程序开发之中,如果之前已经学习过 Flex 布局,那么 Flutter 也是大同小异的,Flexible Box 示意图如下: Flex Widget 可以设置主轴方向...,如果知晓主轴方向,可以直接使用 Row 或者 Column,Flex Widget 不能滚动,如果涉及到滚动可以尝试使用 ListView,Flex Widget 的内容超过其宽度和高度,则显示黄黑相间的警告条纹...,默认值; MainAxisAlignment.end:右对齐; MainAxisAlignment.center:居中对齐; MainAxisAlignment.spaceBetween:两端对齐;

1.3K10

Flutte部件目录-基本部件(一)

使用Flutter的视觉,结构,平台和交互式小部件集合更快地创建漂亮的应用程序。 基本部件 构建您的第一个Flutter应用程序之前,您绝对需要了解这些小部件。...另外,部件有一个子部件,但没有高度,没有宽度,没有约束,也没有对齐,并且容器约束从父项传递给子项,并将其自身尺寸设置为与子部件匹配。...inherited Row  水平方向上布局子部件的列表。 一个以水平数组显示其子项的部件。 要让孩子展开以填充可用的水平空间,请将该孩子包裹在Expanded部件。...示例代码 此示例将可用空间划分为三个(水平),并将文本居中放置在前两个单元格,并将Flutter徽标放在第三个单元格中央: new Row( children: [ new...解决方法第二个孩子包装在Expanded部件,该部件告诉行该子部件应该给予剩余房间: new Row( children: [ const FlutterLogo(),

7.4K20

Flutter构建漂亮的UI界面 – 基础组件篇

不过我们可以非常轻松地进行转换,举个栗子: web/rn我们会用'#FF0000'或'red'来表示红色,而在Flutter,我们可以用Color(0xFFFF0000)或Colors.red来表示...Flutter,你需要使用BoxConstraints(盒约束)来实现该功能。...这里有一点需要特别注意:由于Column组件次轴方向上(即水平)默认是居中对齐,所以水平方向上不会撑满其父容器,此时需要指定CrossAxisAlignment.stretch才可以。...绝对定位布局web/rn开发也是使用频率较高的一种布局方式,Flutter也提供了相应的组件实现,需要将Stack和Positioned组件搭配在一起使用。...Icon图标组件相比于图片有着放大不会失真的优势,日常开发也是经常会被用到。Flutter更是直接内置了一套Material风格的图标(你可以在这里预览所有的图标类型)。

2.6K20

flutter制作具有自定义导航栏的渐进式 Web 应用程序

这些项目居中对齐我们使用 Align Widget,它有助于完美地指定元素位置。...,这些是按钮,所以我们可以使用 - “InkWell” - 小部件,它具有 Ontap() 函数,它被包裹着 - “材料”小部件,并取消材料小部件的默认颜色我们手动使颜色透明。...当构造函数获得活动的 bool 变量值,我们可以使用它来为主体 - “AnimatedContainer”设置动画,就像我在下面的代码中所做的那样。...Colors.white : Colors.black38, ), ), ], ), ); } } 压延颗粒导入一排容器...我们需要实现一个 Stack 来使三个轮廓圆形容器一个另一个之上,我们可以使用 Positioned 小部件将它们一个个放在另一个之上。

2.5K20

flutter制作具有自定义导航栏的渐进式 Web 应用程序

这些项目居中对齐我们使用 Align Widget,它有助于完美地指定元素位置。...,这些是按钮,所以我们可以使用 - “InkWell” - 小部件,它具有 Ontap() 函数,它被包裹着 - “材料”小部件,并取消材料小部件的默认颜色我们手动使颜色透明。...当构造函数获得活动的 bool 变量值,我们可以使用它来为主体 - “AnimatedContainer”设置动画,就像我在下面的代码中所做的那样。...Colors.white : Colors.black38, ), ), ], ), ); } } 压延颗粒导入一排容器...我们需要实现一个 Stack 来使三个轮廓圆形容器一个另一个之上,我们可以使用 Positioned 小部件将它们一个个放在另一个之上。

2.9K00

经典布局:如何定义子控件父容器的排版位置?

需要设置内容间距,我们可以通过EdgeInsets的不同构造函数,分别制定四个方向的不同补白方式,如均使用同样数值留白(EdgeInsets.all),只设置左留白(EdgeInsets.only)...Row与Column的使用方法很简单,我们只需要将各个子Widget按序加入到Children数组即可。...可以看到,单纯使用Row和Column控件,子Widget的尺寸较小时,无法容器填满,视觉样式比较难看。对于这样的场景,我们可以通过Expanded控件,来制定分配规则填满容器的剩余空间。...下图展示了Row设置不同方向的对齐规则后的呈现效果: Row的主轴对齐方式 ? Row的纵轴对齐方式: ? Column的对齐方式也是类似的,这里不做过多展开。...需要注意的是,Positioned控件只能在Stack中使用,在其他容器中使用会报错。 总结 Flutter的布局容器强大而丰富,可以小型、单用途的基本视觉元素快速封装成控件。

4.5K30

Flutter 视图布局(一)

Flutter 的实际使用 Row、Column、ListView 这三者都是使用频率较高的布局 Widget 。...02 - 构成属性 在理解完后“轴”的概念后,我们就可以看一看它的构成属性。 源码可以看到 Row、Column 拥有以上属性,这些属性均继承自 Flex 。...我探索 mainAxisAlignment 对齐方式的最终渲染结果的时候,我发现其实可以将它分为两种对齐方式会更好,一种是轴线对齐方式,一种是空间分配对齐方式。...(副)轴的垂直居中对齐,Column 交叉(副)轴的水平居中对齐 stretch Row 子元素拉伸至交叉(副)轴高度相同,Column 子元素拉伸至交叉(副)轴宽度相同 baseline 需要与...03 - 案例实现 那我们就来实现一下 Flutter 中文网给出的例子 【Flutter构建布局】 https://flutterchina.club/tutorials/layout/ 可以看出它将设计图拆分为基本的元素

2.6K61

Flutter 视图布局-前言

Flutter 主要的布局方式有两种: 多子类元素布局 单子类元素布局 还有一个比较特殊的 LayoutBuilder,这个主要是构建一个可以依赖父窗口大小的 Widget 树。...纵轴上,子元素们被要求填充ListView。 Table 为其子元素使用表格布局算法的 Widget。 Wrap 可以水平或垂直方向多行显示其子元素。...Padding 可以将其子元素添加填充指定的空间的 Widget。 Center 将其子元素居中显示自身内部的 Widget。...Align 一个 Widget,它可以将其子元素对齐,并可以根据子元素的大小自动调整大小。 Baseline 根据子项的基线对它们的位置进行定位的 Widget。...LimitedBox 一个当其自身不受约束才限制其大小的盒子。 OverflowBox 对其子项施加不同约束的 Widget,它可能允许子项溢出父级。 SizedBox 一个特定大小的盒子。

2.2K110

Flutter布局基础——Column竖直布局

Flutter布局基础——Column竖直布局 Column-是竖直方向布局子视图的Widget,和Row相似,如果想要子视图充满,可使用Expanded把子视图包括起来。 <!...如果想要横向布局,使用Row。 如果只有一个元素,可考虑使用Align或者Center来布局。...Ps:需要注意的是CrossAxisAlignment.center的效果,不是想象的,整个屏幕的宽度居中对齐。而实际是和最长的子视图的宽度然后居中对齐。...解决办法: 当外层是Column可以使用Expanded把内层的Column包括起来,这样,相当于告诉内层的ColumnWidget,高度要填充外层的ColumnWidget,从而也就相当于确定了高度...需要注意的:二 和Row类似,当子视图内容超出了父视图区域FlutterDebug模式下,会显示黄色的提示。效果如下: <!

1.5K50

Flutter基础widgets教程-Row

1 Row Row是一个用于水平展示多个子控件的控件。row这个控件不会滚动。如果你有一行控件空间不足的情况下可以滚动,考虑使用ListView类。...Row 是纵轴)如何摆放,其实就是子组件对齐方式 3.1.1 子组件 Row 顶部对齐 CrossAxisAlignment:CrossAxisAlignment.start, 3.1.2 子组件...Row 底部对齐 CrossAxisAlignment:CrossAxisAlignment.end, 3.1.3 子组件 Row 居中对齐 CrossAxisAlignment: CrossAxisAlignment.center...:CrossAxisAlignment.baseline, 3.2 mainAxisAlignment:子组件沿着 Main 轴( Row 是横轴)如何摆放,其实就是子组件排列方式 3.2.1 靠左排列...,也就是第一个子组件靠左,最后一个子组件靠右,剩余组件中间平均分散排列 mainAxisAlignment:MainAxisAlignment.spaceBetween, 3.2.6 每个子组件平均分散排列

9051615

Flutter布局篇(1)--水平和垂直布局详解

下文会具体讲解Flutter如何使用Row和Column组件实现LinearLayout效果,以及两者之间的对比,方便大家对比学习。...Flutter和LinearLayout的对比图示如下: [nb3z93dd54.png] 安卓的orientation属性Flutter的体现 Row使用示例代码如下所示: [e0c6tgefa4....png] Row使用示例代码 Column的使用示例代码如下所示: [r6atjdauul.png] Column的使用示例代码 FlutterRow以及Column使用效果图如下所示:...Flutter我们可以使用 Row/Column组件 的 MainAxisAlignment 以及 CrossAxisAlignment 实现控件的对齐效果。...Flutter我们可以使用 Expanded 包裹**Row**或**Column**组件,使用 Expanded 组件里面的 flex**属性** 去实现同样的效果。

2.2K20

Flutter 初学者必读的高级布局规则

Align 还告诉 Container,后者的大小可以自由决定,但是如果有空白空间,它不会让 Container 居中,而是将其对齐到可用空间的右下角。...不幸的是,在这个例子 Container 的宽度为 4000 像素,因为太大而无法容纳 UnconstrainedBox ,因此 UnconstrainedBox 显示让人胆战心惊的“溢出警告”..., ]) 当一个 Row 子项包装在一个 Expanded widget Row 将不再允许该子项定义自己的宽度。...Row 要么使用子项相同的宽度,或者使用 Expanded 或 Flexible 完全忽略子项。...但是如果你决定要研究布局的源码,则可以使用 IDE 的导航功能轻松找到它。 下面是一个示例: 在你的代码中找到一些 Column,然后导航到其源代码(IntelliJ 按下 Ctrl-B)。

1.6K20

Flutter构建布局 顶

可以通过交互添加到您的Flutter应用来为此布局添加交互功能。 Flutter的布局方法 重点是什么? 小部件是用于构建UI的类。 小部件用于布局和UI元素。...设计用户界面,您可以专门使用标准小部件库的小部件,也可以使用材质部件的小部件。 您可以混合使用两个库的小部件,您可以自定义现有的小部件,也可以构建自己的一组定制小部件。...子小部件本身可以是行,列或其他复杂小部件。 您可以指定行或列如何在垂直和水平方向上对齐子项。 您可以拉伸或限制特定的子部件。 您可以指定子窗口小部件如何使用行或列的可用空间。...内容 对齐小部件 调整小部件 包装小部件 嵌套行和列 要在Flutter创建行或列,可以一个子窗口小部件列表添加到Row或Column窗口小部件。...您可以行或列的子项放置扩展小部件,以控制沿着主轴的小部件大小。 扩展小部件具有flex属性,它是一个整数,用于确定小部件的弹性因子。 扩展小部件的默认弹性因子是1。

43K10

谈谈flutterCheckbox复选框的全选与删除【flutter20个实例之三】

一、老套路,先看样式 左侧三张图片是我的实际开发业务界面,用作展示而已,具体源码效果是右边侧的三张图片。 源码可直接复制运行查看效果,不涉及组件引入和数据请求逻辑 ? ? ? 和 ? ?...2.我们先初始化一下数据,设置顶部信息栏的显示效果 appbar的右侧设置一个编辑按钮,增加点击事件,重置选中的ID和复选框样式 appbar的相关功能可以参考初识顶部导航栏【flutter20个实例之一...当我们点击右上角的编辑,调出底部的全选和删除操作,但是这个底部样式不随着列表一起滚动 所以我们需要用叠加组件stack两部分功能包含在一起,同时底部的样式要固定在底部 列表的内容样式可以扩散开发,...)), ), ); } 5.中间的内容,左侧放我们的复选框,右侧是列表数据 注意的是:内容里面的复选框padding,要和底部操作条的padding设置一致,看起来是对齐的...内容列表的复选框点击的时候: 如果状态为true,判断deleteIds数组里是否已经存在本ID,如果没有则进行新增 如果状态为false,删除deleteIds数组里本数据ID //底部操作样式

3.5K30
领券