Stack 表示堆的意思,我们可以用 Stack 或者 Stack 结合 Align 或者 Stack 结合 Positiond 来实现页面的定位布局。
  • Stack组件

常用于两个子元素。

Stack组件的常用属性:
属性 说明
alignment 配置所有子元素的显示位置
children 子组件

import 'package:flutter/material.dart';

void main() {
runApp(MaterialApp(
title: "StackWidget",
home: MyApp(),
));
} class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
alignment: Alignment.bottomRight,
children: <Widget>[
Container(
width: 400,
height: 500,
color: Colors.redAccent,
),
Icon(Icons.account_box,size: 40,color: Colors.white)
],
),
);
}
}

  • Stack组件 结合 Align组件

常用于多个元素。

Align 组件可以独立控制每个子元素的显示位置。

Align组件常用的属性:

属性 说明
alignment 配置所有子元素的显示位置
child 子组件

import 'package:flutter/material.dart';

void main() {
runApp(MaterialApp(
title: "StackWidget",
home: MyApp(),
));
} class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
width: 400,
height: 500,
color: Colors.redAccent,
child: Stack(
children: <Widget>[
Align(
child: Icon(Icons.account_box, size: 40, color: Colors.white),
alignment: Alignment.topLeft,
),
Align(
child: Icon(Icons.palette, size: 40, color: Colors.white),
alignment: Alignment.center,
),
Align(
child: Icon(Icons.shopping_cart, size: 40, color: Colors.white),
alignment: Alignment.bottomRight,
)
],
),
),
);
}
}

  • Stack组件 结合 Positioned组件

常用于多个元素。

Positioned 组件可以独立控制每个子元素的显示位置。

Positioned组件的常用属性:

属性 说明
top
子元素距离顶部的距离
bottom
子元素距离底部的距离
left
子元素距离左侧距离
right
子元素距离右侧距离
child
子组件

import 'package:flutter/material.dart';

void main() {
runApp(MaterialApp(
title: "StackWidget",
home: MyApp(),
));
} class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
width: 400,
height: 500,
color: Colors.redAccent,
child: Stack(
children: <Widget>[
Positioned(
child: Icon(Icons.account_box, size: 40, color: Colors.white),
top: 10,
),
Positioned(
child: Icon(Icons.palette, size: 40, color: Colors.white),
right: 20,
),
Positioned(
child: Icon(Icons.shopping_cart, size: 40, color: Colors.white),
left: 30,
bottom: 0,
)
],
),
),
);
}
}

Flutter——Stack组件(层叠组件)、Align组件、Positioned组件的更多相关文章

  1. Flutter学习笔记(15)--MaterialApp应用组件及routes路由详解

    如需转载,请注明出处:Flutter学习笔记(15)--MaterialApp应用组件及routes路由详解 最近一段时间生病了,整天往医院跑,也没状态学东西了,现在是好了不少了,也该继续学习啦!!! ...

  2. Flutter学习笔记(18)--Drawer抽屉组件

    如需转载,请注明出处:Flutter学习笔记(18)--Drawer抽屉组件 Drawer(抽屉组件)可以实现类似抽屉拉出和推入的效果,可以从侧边栏拉出导航面板.通常Drawer是和ListView组 ...

  3. Flutter学习笔记(24)--SingleChildScrollView滚动组件

    如需转载,请注明出处:Flutter学习笔记(23)--多 在我们实际的项目开发中,经常会遇到页面UI内容过多,导致手机一屏展示不完的情况出现,以Android为例,在Android中遇到这类情况的做 ...

  4. vue父组件异步传递prop到子组件echarts画图问题踩坑总结

    效果图: 大致思路:考虑到5张图都是折线图,所以准备用一个子组件承接echarts画图,然后父组件通过prop传递不同数据来展示不同的图 踩坑问题: 1.引入line子组件,画了5个元素,但是只显示一 ...

  5. vue组件详解(五)——组件高级用法

    一.递归组件 组件在它的模板内可以递归地调用自己, 只要给组件设置name 的选项就可以了. 示例如下: <div id="app19"> <my-compone ...

  6. C#组件系列———又一款日志组件:Elmah的学习和分享

    前言:好久没动笔了,都有点生疏,12月都要接近尾声,可是这月连一篇的产出都没有,不能坏了“规矩”,今天还是来写一篇.最近个把月确实很忙,不过每天早上还是会抽空来园子里逛逛.一如既往,园子里每年这个时候 ...

  7. JS组件系列——两种bootstrap multiselect组件大比拼

    前言:今天继续来看看bootstrap的另一个组件:multiselect.记得在项目开始之前,博主项目组几个同事就使用哪些js组件展开过讨论,其中就说到了select组件,由于项目的整体风格使用的b ...

  8. 第四节:Vue表单标签和组件的基本用法,父子组件间的通信

    vue表单标签和组件的基本用法,父子组件间的通信,直接看例子吧. <!DOCTYPE html> <html> <head> <meta charset=&q ...

  9. 一步步编写avalon组件01:弹出层组件

    avalon2已经稳定下来,是时候教大家如何使用组件这个高级功能了. 组件是我们实现叠积木开发的关键. avalon2实现一个组件非常轻松,并且如何操作这个组件也比以前的avalon2,还是react ...

随机推荐

  1. DELPHI中 screen.Cursor:=crhourglass; adoQuery.close; adoquery.Open; screen.Cursor:=crdefault;啥意思

    鼠标忙这段代码大概是用来演示鼠标的用法的.具体解释如下: 使鼠标指针为沙漏状.(以表示程序正忙)screen.Cursor:=crhourglass; 把(打开的)数据库关闭.adoQuery.clo ...

  2. SpringMvc+ajax跨域请求时,出现options类型的请求并返回403的解决方案

    在使用 $.ajax({ url:'http://127.0.0.1:8081/rest/ccxxx/xxxx', type:'POST', dataType:"json", co ...

  3. node.js使用superagent实现模拟登陆功能(包含下载验证码功能)

    superagent版本:3.8.3 样例代码: var process = require('process'); var superagent = require('superagent'); v ...

  4. 给.Net Core添加Swagger实现接口文档自动生成

    1.添加Nuget相关引用 Swashbuckle.AspNetCore

  5. redis key 空闲(一)

    语法: redis 127.0.0.1:6379> COMMAND KEY_NAME 实例: redis 127.0.0.1:6379[1]> select 2 OK redis 127. ...

  6. 如何找到linux centos7 中 redis.conf

    我们假设redis正在运行,但是我们找不带redis的配置文件redis.conf. 正确的示范: (1)systemctl status redis ● redis.service - LSB: s ...

  7. ubuntu的sudo免密

    ubuntu的sudo免密与centos大同小异,都是在/etc/sudoers中添加用户信息,添加的内容也一样,只是位置不一样. centos的位置如下: 而ubuntu的位置如下: 除此之外,两行 ...

  8. 用gcd库函数求最大公约数

    如何直接调用库函数来求最大公约数呢? 1.首先看怎样求两个数的最大公约数 要注意gcd()前面是两个“_” !!! #include<bits/stdc++.h> using namesp ...

  9. (十一)El表达式详细介绍

    看之前,最好先看下 el表达式快速入门 本来将重点讲下 el表达式 能干嘛 : 目录 执行计算 获得 web 开发常用对象 关于 param 与 paramValues 的用法: 关于 header ...

  10. ubuntu svn 安装

    deepin@deepin:~$ sudo apt-get install rabbitvcs-rabbitvcs-cli rabbitvcs-core rabbitvcs-gedit rabbitv ...