没有合适的资源?快使用搜索试试~ 我知道了~
Flutter布局组件之层叠组件Stack和Positioned
1 下载量 114 浏览量
2021-01-08
15:18:54
上传
评论
收藏 103KB PDF 举报
温馨提示
试读
3页
层叠布局 Stack、Positioned 层叠布局和Web中的绝对定位、Android中的Frame布局是相似的,子组件可以根据距父容器四个角的位置来确定自身的位置。绝对定位允许子组件堆叠起来(按照代码中声明的顺序)。Flutter中使用Stack和Positioned这两个组件来配合实现绝对定位。Stack允许子组件堆叠,而Positioned用于根据Stack的四个角来确定子组件的位置 Stack 定义: Stack({ this.alignment = AlignmentDirectional.topStart, this.textDirection, this.fit =
资源详情
资源评论
资源推荐
Flutter布局组件之层叠组件布局组件之层叠组件Stack和和Positioned
层叠布局层叠布局 Stack、、Positioned
层叠布局和Web中的绝对定位、Android中的Frame布局是相似的,子组件可以根据距父容器四个角的位置来确定自身的位
置。绝对定位允许子组件堆叠起来(按照代码中声明的顺序)。Flutter中使用Stack和Positioned这两个组件来配合实现绝对定
位。Stack允许子组件堆叠,而Positioned用于根据Stack的四个角来确定子组件的位置
Stack
定义:
Stack({
this.alignment = AlignmentDirectional.topStart,
this.textDirection,
this.fit = StackFit.loose,
this.overflow = Overflow.clip,
List children = const [],
})
属性:
alignment:它指定的是所有子组件的对齐方式,此参数决定如何去对齐没有定位(没有使用Positioned)或部分定位的子组
件。所谓部分定位,在这里特指没有在某一个轴上定位:left、right为横轴,top、bottom为纵轴,只要包含某个轴上的一个定
位属性就算在该轴上有定位。
alignment 的可选值有:
AlignmentDirectional.topCenter:子组件垂直靠顶部水平居中对齐。
AlignmentDirectional.topRight:子组件垂直靠顶部水平靠右对齐。
AlignmentDirectional.centerLeft:子组件垂直居中水平靠左对齐。
AlignmentDirectional.center:子组件垂直和水平居中都对齐。
AlignmentDirectional.centerRight:子组件垂直居中水平靠右对齐。
AlignmentDirectional.bottomLeft:子组件垂直靠底部水平靠左对齐。
AlignmentDirectional.bottomCenter:子组件垂直靠底部水平居中对齐。
AlignmentDirectional.bottomRight:子组件垂直靠底部水平靠右对齐。
也可以使用 alignmentDirectional(start,y) 指定具体的偏移量,start 就相当于 x,它是以整个组件的中心为坐标原点,x、y 偏
移量取值范围为 [-1,1],如果 x 的偏移量大于 0,则表示向右偏移,小于 0 则向左偏移;如果 y 轴的偏移量大于 0 则向下偏
移,小于 0 则向上偏移。
textDirection:和Row、Wrap的textDirection功能一样,都用于确定alignment对齐的参考系,即:textDirection的值为
TextDirection.ltr,则alignment的start代表左,end代表右,即从左往右的顺序;textDirection的值为TextDirection.rtl,则
alignment的start代表右,end代表左,即从右往左的顺序。
fit:此参数用于确定没有定位的子组件如何去适应Stack的大小。StackFit.loose表示使用子组件的大小,StackFit.expand表示
扩伸到Stack的大小。StackFit.passthrough:不改变子组件约束条件。
overflow:此属性决定如何显示超出Stack显示空间的子组件;值为Overflow.clip时,超出部分会被剪裁(隐藏),值为
Overflow.visible 时则不会。
Positioned
定义:
const Positioned({
Key key,
this.left,
this.top,
this.right,
this.bottom,
this.width,
this.height,
@required Widget child,
})
属性:
left、top 、right、 bottom分别代表离Stack左、上、右、底四边的距离。width和height用于指定需要定位元素的宽度和高度。
注意,Positioned的width、height 和其它地方的意义稍微有点区别,此处用于配合left、top 、right、 bottom来定位组件,举
个例子,在水平方向时,你只能指定left、right、width三个属性中的两个,如指定left和width后,right会自动算出
(left+width),如果同时指定三个属性则会报错,垂直方向同理。
示例:
在下面的例子中,我们通过对几个Text组件的定位来演示Stack和Positioned的特性:
//通过ConstrainedBox来确保Stack占满屏幕
ConstrainedBox(
constraints: BoxConstraints.expand(),
child: Stack(
alignment:Alignment.center , //指定未定位或部分定位widget的对齐方式
weixin_38694343
- 粉丝: 3
- 资源: 915
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- pta题库答案c语言之排序4统计工龄.zip
- pta题库答案c语言之树结构7堆中的路径.zip
- pta题库答案c语言之树结构3TreeTraversalsAgain.zip
- pta题库答案c语言之树结构2ListLeaves.zip
- pta题库答案c语言之树结构1树的同构.zip
- 基于C++实现民航飞行与地图简易管理系统可执行程序+说明+详细注释.zip
- pta题库答案c语言之复杂度1最大子列和问题.zip
- 三维装箱问题(Three-Dimensional Bin Packing Problem,3D-BPP)是一个经典的组合优化问题
- 以下是一些关于Linux线程同步的基本概念和方法.txt
- 以下是一个简化的示例,它使用pygame库来模拟烟花动画的框架.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0