使用行(Row)水平排列widget,使用列(Column)垂直排列widget。在行或列中嵌套行或列实现复杂的布局。如下图所示:

此布局按行排列。该行包含两个子布局,左侧一列和右侧的图片

对于行(Row)来说,主轴是水平方向,横轴是垂直方向。对于列(Column)来说,主轴是垂直方向,横轴是水平方向

使用mainAxisAlignment和crossAxisAlignment属性控制行或列对齐(使用
MainAxisAlignment和CrossAxisAlignment类中的常量)
如下图:3个图像都是100像素,屏幕宽度大于300像素,可以设置主轴对齐方式为spaceEvently,它会在每个图像之前和之后分配空闲的水平空间

代码如下:

appBar: new AppBar(
title: new Text(widget.title),
),
body: new Center(
child: new Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
new Image.asset('images/pic1.jpg'),
如果要widget按比例占据空间大小,可以将widget放到ExpandedWidget中,ExpandedWidget的flex属性,用于确定widget的弹性系数,默认为1
如下图:创建一个由3个widget组成的行,其中中间widget的宽度是其他两个widget的两倍,将中间widget的弹性系数设置为2

代码如下:

class ExpandedState extends State<ExpandedS> {
@override
Widget build(BuildContext context) {
// TODO: implement build
  return new Scaffold(
    appBar: new AppBar(title: new Text('ExpandedTest')),
      body: new Center(
        child: new Row(
         crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            new Expanded(child: new Image.asset('images/1.jpg')),
            new Expanded(child: new Image.asset('images/2.jpg'), flex: 2,),
            new Expanded(child: new Image.asset('images/3.jpg'))
          ],

        ),
      ),
    );
  }
}

默认情况下,行或列沿着其主轴会占用尽可能多的空间,如果要将widget聚集在一起,可以将mainAxisSize设置为MainAxisSize.min
如下图,将五角星挨个排列,而不是分散占成一行

---------------------
作者:Super_666
来源:CSDN
原文:https://blog.csdn.net/Super_666/article/details/81334895
版权声明:本文为博主原创文章,转载请附上博文链接!

flutter Row 垂直或水平放置多个widget的更多相关文章

  1. Flutter——Row组件(水平布局组件)

    Row组件的常用属性 属性 说明 mainAxisAlignment 主轴的排序方式 crossAxisAlignment 次轴的排序方式 children 组件子元素 import 'package ...

  2. Atitit 管理的模式扁平化管理 金字塔 直线型管理 垂直管理 水平管理 矩阵式管理 网状式样管理 多头管理 双头管理

    Atitit 管理的模式扁平化管理  金字塔 直线型管理 垂直管理 水平管理 矩阵式管理 网状式样管理 多头管理 双头管理 1.1. 矩阵管理 1 1.2. 相关信息 矩阵的历史 1 1.3. 基于“ ...

  3. MATLAB:图像水平、垂直、水平垂直镜像、转置、旋转变换(flipdim、mirror、transp、imrotate函数)

    1.原图像经水平.垂直.水平垂直镜像设置通过mirror函数实现: close all; %关闭当前所有图形窗口,清空工作空间变量,清除工作空间所有变量 clear all; clc; I=imrea ...

  4. flutter row 文字显示不全

    解决:在row层中的text层加一个expend flutter Row里面元素居中显示 new Expanded( flex: , child: new Row( children: <Wid ...

  5. css项目列表如何水平放置

    列表项目默认分行排列,那么将列表项设置浮动就可以实现水平放置 1 li{float:left;} 示例如下: 创建Html元素 1 2 3 4 5 6 <ul>     <li> ...

  6. Android学习笔记技巧之垂直和水平滚动视图

    <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android=" ...

  7. 浅谈position、table-cell、flex-box三种垂直(水平)居中技巧

    一.首先是喜闻乐见的position方法,经典且万能,用法如下: 父元素{ position:relative; } 子元素{ position:absolute; top:50%; left:50% ...

  8. ProgressBar显示进度值,垂直或者水平滚动条

    过去一段时间,在研究Windows的系统控件ProgressBar,一直奇怪为啥它不能显示进度值,本以为是个很简单的问题,结果搜索很久,也没有找到好的解决方案,最后终于找到一个Perfect方案,特记 ...

  9. 实例:用jQuery实现垂直和水平下拉 菜单

    主要是利用jQuery来实现垂直菜单和水平菜单.实现效果如图: 第一步,创建一个HTML文件,如图,包含两个ul.当然把jquery库也引入进去了. <!DOCTYPE html> < ...

随机推荐

  1. JPA + SpringData 操作数据库--Helloworld实例

    前言:谈起操作数据库,大致可以分为几个阶段:首先是 JDBC 阶段,初学 JDBC 可能会使用原生的 JDBC 的 API,再然后可能会使用数据库连接池,比如:c3p0.dbcp,还有一些第三方工具, ...

  2. webdriver的三种时间等待( sleep(); implicitly_wait(); WebDriverWait();)

    https://blog.csdn.net/HeatDeath/article/details/71774572 基于<Selenium 2自动化测试实战>的学习笔记(11)—— 设置等待 ...

  3. PostgreSQL 问题总结

    一.postgresql  - server don't listen(服务器未监听) 1)检测是否开启PostgreSQL服务,没开启的话,需要自己手动建立PostgreSQL服务. 2)查看543 ...

  4. springboot整合ueditor 前后端分离

    1.下载ueditor,百度搜索ueditor,下载 前端用的是Jsp版,导入文件如下 由于要修改部分源码,所以后端用的源码版,导入文件如下 2.配置路径,用来找到json文件 配置前端ueditor ...

  5. 精进之路之JMM

    JMM (Java Memory Model) java内存模型 Java内存模型的抽象 Java线程之间的通信由Java内存模型(本文简称为JMM)控制,JMM决定一个线程对共享变量的写入何时对另一 ...

  6. pycharm中字体大小的调整方法

    一.file->settings->editor->font->size 二.file中键入mouse,在其下editor->general->mouse选中:ch ...

  7. C++入门程序作业2

    程序在Dev-C++5.5.3版本运行 结构体的使用 给结构体赋值,打印出结构体中学生姓名,分数,平均分 #include <iostream>#include <cassert&g ...

  8. 《xxx系统》可用性与易用性功能增加

    可用性:1. 用户删除的表单信息还可以进行恢复: 2. 用户可根据某一字段的某部分文字进行模糊查询. 3. 任何界面响应时间不超过5秒. 易用性:1. 审核人员进入系统后,提醒审核人进行密码修改 2. ...

  9. cobbler批量化安装系统

  10. JIRA 7.8 版本的安装与破解

    jira的运行是依赖java环境的,也就是说需要安装jdk并且要是1.8以上版本 除此之外,我们还需要安装MySQL,为jira创建对应的数据库.用户名和密码,如下: 注意:建库名jira,字符集为U ...