介绍

层叠布局和Web中的绝对定位、Android中的Frame布局是相似的,子组件可以根据距父容器四个角的位置来确定自身的位置。绝对定位允许子组件堆叠起来(按照代码中声明的顺序)

Stack

alignment

决定如何去对齐没有定位(没有使用Positioned)或部分定位的子组件。

所谓部分定位,在这里特指没有在某一个轴上定位:leftright为横轴,topbottom为纵轴,

只要包含某个轴上的一个定位属性就算在该轴上有定位

textDirection RowWraptextDirection功能一样,都用于确定alignment对齐的参考系
fit

用于确定没有定位的子组件如何去适应Stack的大小。

StackFit.loose表示使用子组件的大小,

StackFit.expand表示扩伸到Stack的大小

overflow

属性决定如何显示超出Stack显示空间的子组件;

值为Overflow.clip时,超出部分会被剪裁(隐藏)

值为Overflow.visible 时则不会。

Positioned

lefttop 、right、 bottom分别代表离Stack左、上、右、底四边的距离。

widthheight用于指定需要定位元素的宽度和高度。

注意,Positionedwidthheight 用于配合lefttop 、right、 bottom来定位组件,

举个例子,在水平方向时,你只能指定leftrightwidth三个属性中的两个,

如指定leftwidth后,right会自动算出(left+width),如果同时指定三个属性则会报错,垂直方向同理。

demo

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {@overrideWidget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(backgroundColor: Colors.red,title: Text('层叠布局练习',style: TextStyle(fontSize: 18, color: Colors.yellow),),),body: FlexTest(),),);}
}class FlexTest extends StatelessWidget {@overrideWidget build(BuildContext context) {// TODO: implement buildreturn ConstrainedBox(//布局占满屏幕constraints: BoxConstraints.expand(),child: Container(color: Colors.blue,child: Stack(overflow: Overflow.visible,fit: StackFit.loose,alignment: Alignment.center, //没有指定定位的控件设置默认居中显示children: <Widget>[Text("Hello world", style: TextStyle(color: Colors.yellow,fontSize: 30)),Positioned(top: 30,child: Text("Hello world", style: TextStyle(color: Colors.orange,fontSize: 30)),),Positioned(right: 20,child: Text("Hello world", style: TextStyle(color: Colors.red,fontSize: 30)),),],),),);}
}

Flutter组件学习(13)层叠布局Stack、Positioned相关推荐

  1. 【Flutter组件】层叠布局 Stack、Positioned

    层叠布局(Stack)和 Web 中的绝对定位.Android 中的 FrameLayout 布局是相似的,子组件可以根据距父容器四个角的位置来确定自身的位置.层叠布局允许子组件按照代码中声明的顺序堆 ...

  2. flutter 布局 Stack Positioned的混合操作 两个组件Container重叠 构建背景圆角操作 类似css的relative

    flutter 布局 Stack Positioned的混合操作 两个组件Container重叠 构建背景圆角操作 首先看一下需求 需要在这里加一个背景圆角,涉及到两个组件Container的重叠 我 ...

  3. flutter 层叠布局Stack、Positioned

    Flutter中使用Stack和Positioned来实现层叠布局效果 1 Stack Stack({Key? key,this.alignment = AlignmentDirectional.to ...

  4. Flutter 层叠布局 Stack、Positioned

    层叠布局和Web中的绝对定位.Android中的Frame布局是相似的,子组件可以根据距父容器四个角的位置来确定自身的位置.绝对定位允许子组件堆叠起来(按照代码中声明的顺序).Flutter中使用St ...

  5. Flutter组件--重叠布局/相对布局(Stack,Positioned组件)

    1.Flutter Stack组件 Stack表示堆的意思,我们可以用Stack或者Stack结合Align或者Stack结合 Positiond来实现页面的定位布局 属性 说明 alignment ...

  6. Flutter层叠布局 Stack、Positioned

    Flutter中使用Stack和Positioned这两个组件来配合实现绝对定位.Stack允许子组件堆叠,而Positioned用于根据Stack的四个角来确定子组件的位置. Stack align ...

  7. Flutter之层叠布局Stack、Positioned

    Flutter中使用Stack和Positioned这两个组件来配合实现绝对定位.Stack允许子组件堆叠,而Positioned用于根据Stack的四个角来确定子组件的位置. 一.属性列表  Sta ...

  8. Flutter组件学习(二)—— Image

    序言 上一节中,我们讲了 Flutter 中 Text 组件的一些用法以及 API,本节我们继续学习 Flutter 中的 Image 组件,同样先上图: Image组件的构造方法 在 Android ...

  9. Flutter组件学习(19)GridView

    介绍 GridView和ListView的大多数参数都是相同的,它们的含义也都相同, 唯一需要关注的是gridDelegate参数,类型是SliverGridDelegate,它的作用是控制GridV ...

最新文章

  1. C++中特定宏_FUNCTION_
  2. 快排算法的Java实现
  3. 看动画学算法之:排序-归并排序
  4. lora技术和zigbee技术那个好,两者有啥优势
  5. 升级 ubuntu_Ubuntu 19.04 已经到期!现有用户必须升级到 Ubuntu 19.10
  6. Django 模板系统2
  7. 小知识-美元石油体系
  8. window中使用jedis连接虚拟机中的redis
  9. 看本质:微服务为什么需要契约测试?
  10. 文件系统以及硬盘分区概念
  11. C语言 判断某一日期是星期几
  12. linux系统it固定资产管理系统包_固定资产管理系统功能介绍
  13. android通讯录照片同步,通讯录同步助手
  14. 实现阿里云视频直播流程
  15. 人工智能产业链,是时候梳理一下了!
  16. spring之AOP切面不生效!!!!!原因在这
  17. 正则 以小写英文字母开头,且只能包含英文字母、数字、下划线
  18. java实现编译器_实现一个简单的编译器
  19. Struts1.x系列教程(1):用MyEclipse开发第一个Struts程序
  20. 基于规则和检索的聊天机器人引擎

热门文章

  1. mac/windows下查看端口号占用情况以及杀死端口进程
  2. 【桌游】微信小程序——线下桌游预约
  3. win10 调用计算机,win10系统打开软件总提示是否允许程序修改计算机的解决方法...
  4. QA实习第三周个人感受
  5. Servlet中forward和redirect的区别(转)
  6. Flare动画进阶——创建可互动的一拳超人动画
  7. 微信小程序配置服务器域名和业务域名
  8. 计算机网络(一)——网络编程
  9. 字符串和时间转换sql
  10. submit()和onsubmit()的区别