1. Stack 组件

Stack 表示堆的意思,用此组件修饰的子组件会“堆”在一起。

常见属性:

1. alignment  对齐方式;

2. children 子组件;

代码示例:

import 'package:flutter/material.dart';void main(){runApp(MyApp());
}// 抽离成一个单独的组件
class MyApp extends StatelessWidget{@overrideWidget build(BuildContext context) {return MaterialApp(home: Scaffold(// 导航条appBar:AppBar(title:Text('Flutter App')),// 主体body:HomeContent(),),// 主题theme: ThemeData(primarySwatch:Colors.yellow),);}
}// 利用Stack的alignment实现定位
class HomeContent extends StatelessWidget{@overrideWidget build(BuildContext context) {// Stack会将里面的子组件堆叠到一起return Center(child:Stack(// 直接指定方位,共9个// alignment: Alignment.center,// 用数值来表示方位,x和y的值位于-1到1之间// 0,0表示居中显示alignment: Alignment(1,0),children: <Widget>[Container(height:400,width:300,color:Colors.red),Text("这是一个文本",style:TextStyle(fontSize: 20.0,color:Colors.green)), ],));}
}

效果图如下:

2. Stack与Align实现定位

Align组件专用于修饰子组件的对齐方式。

常见属性:

1. alignment  对齐方式;

2. children 子组件;

代码示例:

import 'package:flutter/material.dart';void main(){runApp(MyApp());
}// 抽离成一个单独的组件
class MyApp extends StatelessWidget{@overrideWidget build(BuildContext context) {return MaterialApp(home: Scaffold(// 导航条appBar:AppBar(title:Text('Flutter App')),// 主体body:HomeContent(),),// 主题theme: ThemeData(primarySwatch:Colors.yellow),);}
}// 利用Stack与Align实现多个子组件的定位
class HomeContent extends StatelessWidget{@overrideWidget build(BuildContext context) {return Center(child:Container(height:400,width:300,color:Colors.red,child:Stack(children: <Widget>[Align(alignment:Alignment.topLeft,child:Icon(Icons.home,size:40,color:Colors.blue)),Align(// 对齐方式也可以使用数值表示alignment: Alignment(0,-1),child:Icon(Icons.search,size:40,color:Colors.white)),Align(alignment: Alignment.topRight,child:Icon(Icons.inbox,size:40,color:Colors.black))],)));}
}

效果图如下:

3. Stack与Postioned实现定位

Positioned组件用于对子组件进行定位。

常见属性:

1. top 子元素距离顶部的距离;

2. bottom 子元素距离底部的距离;

3. left  子元素距离左侧距离;

4. right 子元素距离右侧距离;

5. child 子组件;

代码示例:

import 'package:flutter/material.dart';void main(){runApp(MyApp());
}// 抽离成一个单独的组件
class MyApp extends StatelessWidget{@overrideWidget build(BuildContext context) {return MaterialApp(home: Scaffold(// 导航条appBar:AppBar(title:Text('Flutter App')),// 主体body:HomeContent(),),// 主题theme: ThemeData(primarySwatch:Colors.yellow),);}
}// 利用Stack与Positioned实现多个子组件的定位
class HomeContent extends StatelessWidget{@overrideWidget build(BuildContext context) {return Center(child:Container(height:400,width:300,color:Colors.red,child:Stack(children: <Widget>[// 位置组件可以定位4个方向的// 一般用两个方位即可Positioned(bottom:0,left:0,child:Icon(Icons.home,size:40,color:Colors.blue)),Positioned(bottom:0,left:130,child:Icon(Icons.search,size:40,color:Colors.white)),Positioned(bottom:0,right:0,child:Icon(Icons.inbox,size:40,color:Colors.black))],)));}
}

效果图如下:

Flutter中Stack层叠组件以及与Align、Positioned组件实现定位布局相关推荐

  1. Flutter中Padding、Row 、Column 、Expanded 组件详解

    1. Paddiing 组件 在 html 中常见的布局标签都可以使用 padding 属性,但是 Flutter 中很多 Widget 是没有 padding 属 性,这个时候我们可以用 Paddi ...

  2. Flutter中PlatformView组件无法刷新的问题

    在Flutter中我们经常使用PlatformView来进行原生组件的绘制,但是倘若使用setState()进行页面刷新时候,虽然页面刷新了,但是PlatformView还是使用的之前的组件.这种情况 ...

  3. Flutter第一部分(UI)第二篇:在Flutter中构建布局

    前言:Flutter系列的文章我应该会持续更新至少一个月左右,从User Interface(UI)到数据相关(文件.数据库.网络)再到Flutter进阶(平台特定代码编写.测试.插件开发等),欢迎感 ...

  4. Flutter中那些你需要知道的文本知识!

    通过阅读本文,您将了解到 文本的组成部分: Flutter对于文本&段落是如何绘制的: 明白Flutter Text 背后的逻辑: 在业务中碰到一些文本显示的问题时,知道从哪些地方去尝试修改. ...

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

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

  6. 【Flutter】Flutter 照片墙 ( Center 组件 | Wrap 组件 | ClipRRect 组件 | Stack 组件 | Positioned 组件 | 按钮组合组件 )

    文章目录 一.Flutter 组件回顾 二.Center 组件 三.Wrap 组件 四.ClipRRect 组件 五.Stack 组件与 Positioned 组件 六.按钮组件组合 七.完整代码示例 ...

  7. Flutter Stack Align Positioned

    Flutter Stack 层叠组件 在介绍Stack 层叠组件时,顺便带上Align**和Positioned**,以及组合使用 参数详解 Stack 属性 说明 alignment 布局定位 默认 ...

  8. 【Flutter】Flutter 布局组件 ( FractionallySizedBox 组件 | Stack 布局组件 | Positioned 组件 )

    文章目录 一.FractionallySizedBox 组件 二.Stack 布局组件 三.Positioned 组件 四. 完整代码示例 五. 相关资源 一.FractionallySizedBox ...

  9. 在Flutter中嵌入Native组件的正确姿势

    引言 在漫长的从Native向Flutter过渡的混合工程时期,要想平滑地过渡,在Flutter中使用Native中较为完善的控件会是一个很好的选择.本文希望向大家介绍AndroidView的使用方式 ...

最新文章

  1. Python 列表 insert() 方法
  2. 利用Landsat8 进行利用土地分类
  3. import javax.servlet 出错(真的很管用)
  4. SHELL学习 续2
  5. 从零开始学 Web 之 BOM(四)client系列
  6. js代码赋值触发select控件的onchange事件
  7. 使用tesseract-ocr破解网站验证码
  8. 如何快速编写并运行Tiny模板语言?
  9. session 的 源码
  10. git pull和push整理和归纳
  11. D3 Collection
  12. 1.0-并发编程-进程和线程简介
  13. Max Script|控制摄像机
  14. Fleck说明文档翻译
  15. 快递100接口使用整理
  16. 推荐一款Mac上好用的Markdown编辑器
  17. OOA/OOD/OOP(了解)
  18. 湖北省三甲复审评审资料(2011年版第七章--信息科相关)
  19. css如何利用transparent属性设置透明度?transparent属性绘制各种三角形
  20. Glide无法使用任何Transform/Gilde使用Transform不生效问题说明以及Gilde加载任意角圆角实现

热门文章

  1. android 前摄屏幕补光,前后800万摄像头/配前置补光灯_富可视 M2_手机Android频道-中关村在线...
  2. 【Axure教程】在PPT里演示原型模板
  3. 剖析AWS CodeDeploy
  4. “0xffffffff”转为十进制数
  5. 论文阅读“Graph Contrastive Clustering”(ICCV2021)
  6. 布道微服务_02微服务架构解析
  7. 【JZOJ 杂题选讲】北大集训2019 n门问题
  8. dw中html怎么创建css,Dreamweaver创建新的CSS规则
  9. [Pandas] 类型转换astype()
  10. android仿微信相册的效果