Flutter层叠布局 Stack、Positioned

article/2025/9/28 19:48:37

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

Stack

alignment:

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

textDirection:

和Row、Wrap的textDirection功能一样,都用于确定alignment对齐的参考系

fit:

此参数用于确定没有定位的子组件如何去适应Stack的大小。StackFit.loose表示使用子组件的大小,StackFit.expand表示扩伸到Stack的大小。

overflow:

此属性决定如何显示超出Stack显示空间的子组件;值为Overflow.clip时,超出部分会被剪裁,值为Overflow.visible 时则不会。

Positioned

left、top 、right、 bottom

分别代表离Stack左、上、右、底四边的距离

width和height

用于指定需要定位元素的宽度和高度
**
Positioned的width、height用于配合left、top 、right、 bottom来定位组件
即在水平方向时,你只能指定left、right、width三个属性中的两个,如指定left和width后,right会自动算出(left+width),如果同时指定三个属性则会报错,垂直方向同理

示例

Container(margin: const EdgeInsets.all(20),child: Stack(alignment: Alignment.topLeft,children: <Widget>[Positioned(child: Text("浮生如梦"),left: 100,top: 100,),Container(child: Text("来也匆匆,去也匆匆",style: TextStyle(color: Colors.white,),),color: Colors.lightBlue,),Positioned(child: Text("倚天屠龙记"),right: 0,bottom: 100,),],),width: double.infinity,height: 300,
),

效果
在这里插入图片描述

Stack中添加fit: StackFit.expand,

Container(margin: const EdgeInsets.all(20),child: Stack(alignment: Alignment.topLeft,fit: StackFit.expand,//没有定位的组件会占满Stackchildren: <Widget>[Positioned(child: Text("浮生如梦"),left: 100,top: 100,),Container(child: Text("来也匆匆,去也匆匆",style: TextStyle(color: Colors.white,),),color: Colors.lightBlue,),Positioned(child: Text("倚天屠龙记"),right: 0,bottom: 100,),],),width: double.infinity,height: 300,
),

如图,第二个组件Container占满了Stack全部,并盖住了第一个组件,所以第一个组件不可见。
在这里插入图片描述


http://chatgpt.dhexx.cn/article/cX07CwLA.shtml

相关文章

Flutter之层叠布局Stack、Positioned

Flutter中使用Stack和Positioned这两个组件来配合实现绝对定位。Stack允许子组件堆叠&#xff0c;而Positioned用于根据Stack的四个角来确定子组件的位置。 一.属性列表 Stack Stack({this.alignment AlignmentDirectional.topStart, this.textDirection,this.fit StackFi…

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

1.Flutter Stack组件 Stack表示堆的意思&#xff0c;我们可以用Stack或者Stack结合Align或者Stack结合 Positiond来实现页面的定位布局 属性 说明 alignment 配置所有子元素的显示位置 children 子组件 只使用Stack组件的情况下,所有的组件都是重叠在一起的,具体见下: …

Flutter——最详细(Positioned)使用教程

Positioned简介 创建一个小组件&#xff0c;用于控制 [Stack] 的子项的位置。 使用场景&#xff1a; 可以通过坐标的形式来摆放控件的位置&#xff0c;堆叠布局时可以使用&#xff1b; 属性作用width宽度height高度top顶bottom底left左right右 注意事项&#xff1a; 1.如果设置…

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

层叠布局(Stack)和 Web 中的绝对定位、Android 中的 FrameLayout 布局是相似的&#xff0c;子组件可以根据距父容器四个角的位置来确定自身的位置。层叠布局允许子组件按照代码中声明的顺序堆叠起来。Flutter中使用Stack和Positioned这两个组件来配合实现绝对定位。Stack允许子…

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

文章目录 一、FractionallySizedBox 组件二、Stack 布局组件三、Positioned 组件四、 完整代码示例五、 相关资源 一、FractionallySizedBox 组件 FractionallySizedBox 组件 : 可控制组件在水平/垂直方向上填充满父容器 ; class FractionallySizedBox extends SingleChildRen…

Flutter实战Stack与Positioned使用详解

目录 Stack Positioned 小案例 Stack Stack({Key key,this.alignment AlignmentDirectional.topStart,//未指定区域的排布方式this.textDirection,this.fit StackFit.loose,//没有定位的子组件如何去适应Stack的大小this.overflow Overflow.clip,this.clipBehavior Clip…

Flutter基础学习 13-19 Stack的Positioned属性

前边已经介绍了Stack组件&#xff0c;并且进行了两个组件的层叠布局&#xff0c;但是如果是超过两个组件的层叠该如何进行定位那?这就是我们加今天要学的主角Positioned组件了&#xff0c;这个组件也叫做层叠定位组件。 知识点&#xff1a; Positioned组件的属性&#xff1a…

《Flutter 控件大全》第六十八个:Positioned

如果你对Flutter还有疑问或者技术方面的疑惑,欢迎加入Flutter交流群(微信:laomengit)。同时也欢迎关注我的Flutter公众号【老孟程序员】,公众号首发Flutter的相关内容。Flutter地址:http://laomengit.com 里面包含160多个组件的详细用法。Positioned用于定位Stack子组件,…

Flutter- Positioned

Positioned widget 用于定位 Stack 的子 widget。 Flutter Stack Positioned 仅用作 Stack 的直接(或后代)子部件。在 Positioned 到 Stack 的路径上&#xff0c;它只包含 StatelessWidget 或 StatefulWidget 小部件&#xff0c;不允许使用其他小部件(例如 RenderObjectWidge…

jclasslib插件使用

1、安装 File->setting->plugins->Brower Repositories 安装好后如下图 2、查看二进制码即指令

JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用

文章目录 前言一、JVM基础1、cross platform 跨平台2、cross language 跨语言3、什么是JVM呢&#xff1f;一张图告诉你4、java从编码到执行*****5. 从跨平台的语言到跨语言的平台6. jvm与class文件格式7. JVM8. javac的过程9. 常见的JVM实现10. JDK JRE JVM 二、Class File For…

如何在IDEA中使用 Jclasslib

在插件中安装jclasslib&#xff0c;然后重启IDEA 选中你的java文件&#xff0c;然后View->Show ByteCode With Jclasslib即可

android studio 字节码查看工具jclasslib bytecode viewer

jclasslib bytecode viewer 是一款非常好用的.class文件查看工具&#xff1b; jclasslib bytecode editor is a tool that visualizes all aspects of compiled Java class files and the contained bytecode. Many aspects of class files can be edited in the UI. In addit…

Jclasslib 试用

简述&#xff1a; jclasslib 是一个查看class文件的工具 TestJclasslib.java package com.anialy.test;public class TestJclasslib {private String str "Im TestJclasslib";private void print(){System.out.println(str);}public static void main(String[] arg…

jclasslib修改class文件

今天看到别人写的用工具jclasslib直接修改别人jar包里面的class文件,我自己也学着写了一下&#xff0c;发现果然很强大&#xff0c;但是也遇到一些坑 public class JVMTest {public static void main(String[] args) {long maxMemory Runtime.getRuntime().maxMemory(); //返…

通过jclasslib修改class文件

问题描述&#xff1a;在开发中遇到使用第三方jar时想要修改里边某个class文件的情况 解决方法&#xff1a; 通过jclasslib直接修改class文件 安装jclasslib 可以通过下载jclasslib软件来安装&#xff08;不推荐&#xff09; 在IEDA插件中搜索安装jclasslib Bytecode Viewer&a…

IDEA利用jclasslib 修改class文件

IDEA利用jclasslib 修改class文件 idea安装jclasslib-bytecode-viewer插件准备好class文件使用jclasslib使用下列代码更改内容。其他 idea安装jclasslib-bytecode-viewer插件 file–>settings–>plugis &#xff0c;搜索安装jclasslib-bytecode-viewer&#xff0c;重启i…

jclasslib

JClassLib不但是一个字节码阅读器而且还包含一个类库允许开发者读取,修改,写入Java Class文件与字节码。 https://github.com/ingokegel/jclasslib jclasslib bytecode viewer Purpose jclasslib bytecode viewer is a tool that visualizes all aspects of compiled Java cl…

利用jclasslib工具直接修改第三方jar包里面的class文件(亲测可用)

如果出于某些原因&#xff0c;需要修改第三方jar包里的class文件&#xff0c;我们能有什么办法呢&#xff1f; 直接修改肯定是运行不了的&#xff0c;这里我给大家介绍一个小工具jclasslib,因为我的电脑是64位的&#xff0c;所以这里就安装64位版 下载地址&#xff1a;https:…

jclasslib的使用

作用&#xff1a; JClassLib不但是一个字节码阅读器而且还包含一个类库允许开发者读取,修改,写入Java Class文件与字节码 jclasslib下载&#xff1a;https://bintray.com/ingokegel/generic/jclasslib/view 我们在这里使用jclasslib查看局部变量表&#xff08;保存java中方法…