flutter Row 垂直或水平放置多个widget
使用行(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的更多相关文章
- Flutter——Row组件(水平布局组件)
Row组件的常用属性 属性 说明 mainAxisAlignment 主轴的排序方式 crossAxisAlignment 次轴的排序方式 children 组件子元素 import 'package ...
- Atitit 管理的模式扁平化管理 金字塔 直线型管理 垂直管理 水平管理 矩阵式管理 网状式样管理 多头管理 双头管理
Atitit 管理的模式扁平化管理 金字塔 直线型管理 垂直管理 水平管理 矩阵式管理 网状式样管理 多头管理 双头管理 1.1. 矩阵管理 1 1.2. 相关信息 矩阵的历史 1 1.3. 基于“ ...
- MATLAB:图像水平、垂直、水平垂直镜像、转置、旋转变换(flipdim、mirror、transp、imrotate函数)
1.原图像经水平.垂直.水平垂直镜像设置通过mirror函数实现: close all; %关闭当前所有图形窗口,清空工作空间变量,清除工作空间所有变量 clear all; clc; I=imrea ...
- flutter row 文字显示不全
解决:在row层中的text层加一个expend flutter Row里面元素居中显示 new Expanded( flex: , child: new Row( children: <Wid ...
- css项目列表如何水平放置
列表项目默认分行排列,那么将列表项设置浮动就可以实现水平放置 1 li{float:left;} 示例如下: 创建Html元素 1 2 3 4 5 6 <ul> <li> ...
- Android学习笔记技巧之垂直和水平滚动视图
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android=" ...
- 浅谈position、table-cell、flex-box三种垂直(水平)居中技巧
一.首先是喜闻乐见的position方法,经典且万能,用法如下: 父元素{ position:relative; } 子元素{ position:absolute; top:50%; left:50% ...
- ProgressBar显示进度值,垂直或者水平滚动条
过去一段时间,在研究Windows的系统控件ProgressBar,一直奇怪为啥它不能显示进度值,本以为是个很简单的问题,结果搜索很久,也没有找到好的解决方案,最后终于找到一个Perfect方案,特记 ...
- 实例:用jQuery实现垂直和水平下拉 菜单
主要是利用jQuery来实现垂直菜单和水平菜单.实现效果如图: 第一步,创建一个HTML文件,如图,包含两个ul.当然把jquery库也引入进去了. <!DOCTYPE html> < ...
随机推荐
- while循环与 for循环,函数定义与调用
import turtle turtle.setup(600,400,0,0) turtle.bgcolor('red') turtle.color('yellow') turtle.fillcolo ...
- clusterware启动顺序——CRSD
CRSD层面 1.启动过程 )导致">CRSD无法启动集群的应用程序资源的可能原因有:"> 原因:/etc/oracle/ocr.loc指向了错误的OCR文件 [gri ...
- poj1947(树形背包)
题目链接:http://poj.org/problem?id=1947 Rebuilding Roads Time Limit: 1000MS Memory Limit: 30000K Total ...
- python中的lambda表达式
lambda是python中匿名函数的写法 我们可以在不定义函数名的情况下一边定义并调用这个函数 例子: 普通方法定义函数:def plus(a,b): return a+b lambda方法 ...
- Qt的类:qfileinfogatherer
这篇文章中,探索Qt中的类qfileinfogatherer类,先给出私有类头文件.我们先想一想要形成一个信息采集者,需要什么?需要一个线程,当文件信息发生变化的时候,作为一个槽来接收信号. 先预备一 ...
- MySQL安装与启动——Windows系统下
以下书写结合菜鸟教程以及本人理解书写. 数据库下载(开源免费) MySQL数据库下载地址https://dev.mysql.com/downloads/mysql/ 可自由选择版本,一般选择Achiv ...
- GoGland 快捷键说明
关于Gogland一些常用快捷键的说明,我在网上没有搜索到,于是乎,我找到了官网中的视频介绍,然后将其中的一部分摘录了出来,希望能帮住大家... Gogland——使用说明前面是苹果|后面是linux ...
- WORD中引用活动文档元素
要引用活动的段落.表格.域或其他文档元素,可使用 Selection 属性返回一个 Selection 对象.通过 Selection 对象,可访问选定内容中的所有段落或第一段.下列示例将边框应用于选 ...
- PHP多进程引发的msyql连接数问题
PHP多进程引发的msyql连接数问题 业务中有一块采用了PHP的pcntl_fork多进程,希望能提高效率,但是在执行的时候数据库报错 PDO::prepare(): Premature end o ...
- Windows驱动——读书笔记《Windows驱动开发技术详解》
=================================版权声明================================= 版权声明:原创文章 谢绝转载 请通过右侧公告中的“联系邮 ...