使用stack 和Positioned

实现绝对布局 进行位置偏移

Container(
alignment: Alignment.center,
width: double.infinity,
child: Stack(
clipBehavior: Clip.none,
alignment: Alignment.center,
children: [
Container(
width: 40,
height: 40,
margin: EdgeInsets.fromLTRB(0, 0, 90, 0),
decoration: BoxDecoration(
border: Border.all(width: 2,color: Colors.white),
borderRadius: BorderRadius.circular(20)),
child: ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(20)),
child: CachedNetworkImage(
//图片缓存
imageUrl:
'http://img.crcz.com/allimg/202002/29/1582979072845574-lp.jpg',
progressIndicatorBuilder:
(context, url, downloadProgress) =>
CircularProgressIndicator(
value: downloadProgress.progress),
errorWidget: (context, url, error) =>
Icon(Icons.error),
),
),
), Positioned(
left: 30,
child: Container(
width: 40,
height: 40,
decoration: BoxDecoration(
border: Border.all(width: 2,color: Colors.white),
borderRadius: BorderRadius.circular(20)),
child: ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(20)),
child: CachedNetworkImage(
//图片缓存
imageUrl:
'https://img2.woyaogexing.com/2021/01/27/76d0ec1087f944d286031185a97ab13b!400x400.jpeg',
progressIndicatorBuilder:
(context, url, downloadProgress) =>
CircularProgressIndicator(
value: downloadProgress.progress),
errorWidget: (context, url, error) =>
Icon(Icons.error),
),
),
),
),
Positioned(
left: 60,
child: Container(
width: 40,
height: 40,
decoration: BoxDecoration(
border: Border.all(width: 2,color: Colors.white),
borderRadius: BorderRadius.circular(20)),
child: ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(20)),
child: CachedNetworkImage(
//图片缓存
imageUrl:
'https://img2.woyaogexing.com/2021/01/27/e964deb7eadb437aad814b1ee46a8c50!400x400.jpeg',
progressIndicatorBuilder:
(context, url, downloadProgress) =>
CircularProgressIndicator(
value: downloadProgress.progress),
errorWidget: (context, url, error) =>
Icon(Icons.error),
),
),
),
),
Positioned(
left: 90,
child: Container(
width: 40,
height: 40,
decoration: BoxDecoration(
border: Border.all(width: 2,color: Colors.white),
borderRadius: BorderRadius.circular(20)),
child: ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(20)),
child: CachedNetworkImage(
//图片缓存
imageUrl:
'https://img2.woyaogexing.com/2021/01/26/4e4643708cb7430aafecf59574beea5e!400x400.jpeg',
progressIndicatorBuilder:
(context, url, downloadProgress) =>
CircularProgressIndicator(
value: downloadProgress.progress),
errorWidget: (context, url, error) =>
Icon(Icons.error),
),
),
),
),
],
),
),

flutter Stack 绝对布局的使用的更多相关文章

  1. 聊聊flutter的UI布局

    UI布局多半是套路,熟悉套路的规则. Flutter的UI布局也有一套规则 center center可以让任何元素在屏幕中居中,既是水平居中又是垂直居中,如果想让元素从上而下排列要怎么办呢?那就得使 ...

  2. 技术胖Flutter第三季-18布局CardWidget 卡片布局组件

    技术胖Flutter第三季-18布局CardWidget 卡片布局组件 博客地址: https://jspang.com/post/flutter3.html#toc-420 最外面是Card布局,里 ...

  3. 在Flutter中构建布局

    这是在Flutter中构建布局的指南.首先,您将构建以下屏幕截图的布局.然后回过头, 本指南将解释Flutter的布局方法,并说明如何在屏幕上放置一个widget.在讨论如何水平和垂直放置widget ...

  4. Flutter Stack布局中定位的方式

    前言 想要记录一下Stack布局中,定位的两种方式 代码 //……省略无关代码…… child: new Column( children: <Widget>[ new SizedBox( ...

  5. 技术胖Flutter第三季-17布局PositionedWidget层叠定位组件

    博客地址: https://jspang.com/post/flutter3.html#toc-d7a 把我们上节的 Container的部分代码去掉. 使用:Positioned 有点像css里面的 ...

  6. Flutter——Stack组件(层叠组件)、Align组件、Positioned组件

    Stack 表示堆的意思,我们可以用 Stack 或者 Stack 结合 Align 或者 Stack 结合 Positiond 来实现页面的定位布局. Stack组件 常用于两个子元素. Stack ...

  7. flutter stack嵌套,appbar透明,Container设置背景图片并且图片在appbar之下

    stack嵌套 一般情况下 stack是无法嵌套,出现stack嵌套,布局就会出乱 解决方式:就是第二个stack需要确定宽高 appbar透明 AppBar( backgroundColor: Co ...

  8. flutter stack

    import 'package:flutter/material.dart'; void main() { runApp(MaterialApp(home: new MyApp())); } clas ...

  9. 技术胖Flutter第三季-14布局RowWidget的详细讲解

    flutter总的地址: https://jspang.com/page/freeVideo.html 视频地址: https://www.bilibili.com/video/av35800108/ ...

  10. flutter GridView 网格布局

    当数据量很大的时候用矩阵方式排列比较清晰.此时我们可以用网格列表组件 GridView 实 现布局. GridView 创建网格列表有多种方式,常用有以下两种. 1.可以通过 GridView.cou ...

随机推荐

  1. [​DuckDB] 多核算子并行的源码解析

    DuckDB 是近年来颇受关注的OLAP数据库,号称是OLAP领域的SQLite,以精巧简单,性能优异而著称.笔者前段时间在调研Doris的Pipeline的算子并行方案,而DuckDB基于论文< ...

  2. Vue32 插槽

    1 简介 是一种组件间通信的方式,让父组件可以向子组件指定位置插入 html 结构.子组件中的提供给父组件使用的一个占位标签,用<slot></slot> 表示,父组件可以在这 ...

  3. C++并发-同步并发

    1.等待事件 std::mutex m; void wait() { std::unique_lock<std::mutex> lk(m); lk.unlock(); std::this_ ...

  4. 样本熵(SampEn)的C/C++代码实现与优化

    正文 本文不介绍什么是样本熵,具体推荐看此文https://blog.csdn.net/Cratial/article/details/79742363,写的很好,里面的示例也被我拿来测试代码写的对不 ...

  5. quasar打包时:Module not found: Can't resolve imported dependency "dayjs/plugin/customParseFormat"

    运行quasar build -m electron 后,报错如下: 看了这篇webpack 编译 element-plus 报错后,找到了报错的根源所在 于是,在quasar官方文档找到了针对web ...

  6. 修改安卓ID为硬件唯一ID

    前言: 最近接到个需求,我们新产品上的外包侧APP需要使用硬件唯一ID(不管怎么升级怎么操作,ID始终不变和硬件绑定),用来做权限校验. 由于了解到安卓ID或序列号都会在擦除升级后重新随机生成,所以这 ...

  7. 51nod 1675.序列变换

    序列变换 题目描述 \(lyk\) 有两序列 \(a\) 和 \(b\). \(lyk\) 想知道存在多少对 \(x,y\),满足以下两个条件. \(1:\gcd(x,y)=1\). \(2:a_{b ...

  8. Tomcat修改端口号问题

    今日面试问到如何修改Tomcat的问题 懵了 1.第一种就是我们常用的编辑器中 如:Idea中 一键式修改端口号(我只知道这个) 在下面的图 Http port后处修改即可,默认为8080端口 2.第 ...

  9. linux配置两个不同网段的ip and linux批量添加连续IP

    转载csdn: centos 下批量添加连续IP_cdefg198的专栏-CSDN博客_centos批量添加ip 转载csdn: linux配置两个不同网段的ip_子曰小玖的博客-CSDN博客_lin ...

  10. CSS 页面整体变灰色

    body {-webkit-filter: grayscale(100%) !important;-moz-filter: grayscale(100%) !important;-ms-filter: ...