Visibility Widget介绍

  • Opacity Widget
    • 构造函数说明
  • Offstage Widget
    • 构造函数
  • Visibility Widget
    • 构造函数
  • 其他隐藏控件的方式

Opacity Widget

一个可以让子控件透明度发生变化的控件.

构造函数说明

const Opacity({Key? key,required this.opacity,//透明度,this.alwaysIncludeSemantics = false,Widget? child,})
  • opacity:设置透明度,当设置为0时,子控件不可见,在屏幕上不占用空间,但是仍然在Widget Tree中.
    当opacity的值不在[0,1]之间,子控件先会绘制到缓冲区,然后在绘制到屏幕.

  • alwaysIncludeSemantics:当该值设置为true,并且opacity=0时,虽然子控件不可见,但是在屏幕上会占用子控件大小的空间.

    当[Image]、[Color]使用Opacity设置透明度在[0,1]之间时,使用Image\Color更高效.

 //方案一Opacity(opacity: 0.5,child: Container(color: Color.fromRGBO(0, 0, 255, 1),width: 60,height: 60,),)//方案二 更高效,切效果和方案一一样Container(color: Color.fromRGBO(0, 0, 255, 0.5),width: 60,height: 60,)

Offstage Widget

可以控制子控件是否显示

构造函数

const Offstage({ Key? key, this.offstage = true, Widget? child })
  • offstage: 当offstage=false,子控件(child)可见;
    当offstaged=true是,子控件不可见;子控件在Widget Tree,不进行绘制,不会命中测试;也不占用空间;子控件仍处于active状态;子控件动画仍在进行,所以子控件有动画时,需要手动停止掉动画;
Offstage(offstage: false,child: GestureDetector(onTap: () {print("**** on pressed ***");},child: Container(width: 60,height: 60,color: Colors.deepPurple,),),)

Visibility Widget

控制子控件是否可见

构造函数

  const Visibility({Key? key,required this.child,this.replacement = const SizedBox.shrink(),this.visible = true,this.maintainState = false,this.maintainAnimation = false,this.maintainSize = false,this.maintainSemantics = false,this.maintainInteractivity = false,})
  • visible:,true:子控件可见,绘制到屏幕上; false时,子控件不可见,并且不在屏幕上占用一定的空间,此时会使用replacement替换child,实际绘制的Widget就是replacement,默认replasement时宽高为0的SizedBox.
  • maintainState:当visible=false时,是否保存子控件的状态.当为true时,子空间会在Widget Tree中存在,不占用屏幕 的空间,其实际在子child增加了Offstage等一些父控件.
  • maintainSize:是否为子控件所在的位置保留空间.当maintainSize=true[maintainState、maintainAnimation]时,[]子控件不可见,但是其所在位置占用的空间存在.在Visibility和子控件之间增加了Opacity.

其他隐藏控件的方式

当一个控件在状态改变时,不需要进行绘制,可以一动态的方式决定是否将控件添加到Widget Tree中.
比如当一个控件在需要时,才添加到控件,否则不添加;

///按需将控件添加到Widget Tree
@overrideWidget build(BuildContext context) {Widget child1 = Container(width: 100,height: 100,color: Colors.green,);Widget child2 = Container(width: 100,height: 100,color: Colors.blue,);return Row(children: [if(newer)child2,newer ? child2 : child1,],);}

Flutter Visibility Widget相关推荐

  1. Flutter 多子 Widget 布之Stack、Positioned

    文章目录 层叠 Widget 布局 Stack alignment fit overflow Positioned 上文 Flutter 多子 Widget 布局之Flex.Expanded.Wrap ...

  2. Flutter学习 Widget简介

    目录 1. Widget 概述 1.1 Widget概念 1.2 Widget 分类 2. Widget 接口 3. StatelessWidget 和 StatefulWidget 3.1 Flut ...

  3. Flutter 学习 - Widget 之 对话框

    前言 本篇我们介绍Flutter中常用的对话框,先看下效果图 正文 Flutter 中对话框也是Widget,有两种显示对话框的方法,对于对画框对使用还有特殊要求,我们后面介绍,先来看下这两种方法 1 ...

  4. Android学习Flutter的Widget

    在Android中,View是屏幕上显示的所有内容的基础, 按钮.工具栏.输入框等一切都是View. 在Flutter中,View相当于是Widget.以下的一些常见的Widget以及我们常用到的属性 ...

  5. Flutter之Widget、Element、renderObject

    Widget Widget用来保存Element的配置信息,本身为不可变,Element根据Widget内保存的配置信息来管理渲染树,可以多次插入Widget树中,每次Element都要重新装载Wid ...

  6. ios 从assets加载图片_Flutter图片添加水印功能,Flutter保存Widget为图片

    添加水印,两种实现思路,一种是将图片与水印解码,然后混编再编码,另一种是通过Widget的方式合成. 在这里采用的实现思路是使用层叠布局Stack加载图片以及水印部分,水印部分可能是一个现成的图片也可 ...

  7. Flutter与JS的双向调用、Flutter中Widget与Html混合加载

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精. Flutter是谷歌推出的最新的移动开发框架. [x1]微信公众号的每日提醒 随时随记 每日积累 随心而过 [x2]各种系列的视频教程 ...

  8. Flutter中Widget 、Element、RenderObject角色深入分析

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. ** 你可能需要 CSDN 网易云课堂教程 掘金 EDU学院教程 知乎 Flutter系列文章 本文章将讲述 Widg ...

  9. Flutter图片添加水印功能,Flutter保存Widget为图片

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 重要消息 网易云[玩转大前端]配套课程 EDU配套 教程 Flutter开发的点滴积累系列文章 添加水印,两种实现思路 ...

最新文章

  1. EasyUI表单验证,自定义插件验证,自定义js插件验证,远程验证,常见手机号,中英文,qq等验证规则验证...
  2. oracle上浮下浮分析函数_Oracle SQL高级编程——分析函数(窗口函数)全面讲解...
  3. python爬虫爬取ip记录网站信息并存入数据库
  4. 淘淘商城之技术选型、开发工具和环境、人员配置
  5. 关于CXF大文件的传输问题
  6. Android利用百度地图定位
  7. jq获取页面高度_jquery获取文档高度和窗口高度汇总
  8. 积募解读 | 私募资产配置基金管理人来了,到底可以做什么?
  9. HTML转义字符参照表
  10. ubuntu安装rabbitvcs
  11. 全国62个城市建筑轮廓矢量数据
  12. 飞思卡尔RTI实时中断模块
  13. 【一文读懂生物学重复与技术重复】
  14. gis 六边形网格_六边形网格快速定位
  15. 光滑曲线_计算机图形学十:贝塞尔曲线与贝塞尔曲面
  16. P0负载能力为 8 个 LSTTL 电路,P1-P3负载能力为4个 LSTTL 电路
  17. java版阿里云发送短信
  18. ecshop 多货币解决方案(1)
  19. 基于树莓派的遥控小车
  20. iis,w3wp一直出现WerFault.exe应用程序错误

热门文章

  1. 达梦数据库disql常用语句(一)
  2. vcruntime140_1.dll丢失的解决方法(仅一招解决)
  3. 强制删除桌面多余或恶意IE图标方法 :强制删除桌面多余或恶意IE图标方法:
  4. HarmonyOS内存占用,华为HarmonyOS对比EMUI11:内存占用更少 系统更流畅
  5. 让你平步青云的10个谈话技巧
  6. 学习编程,这些好习惯带我们平步青云——直通大牛
  7. 编程学习了解:一个优秀的程序员必备的五点能力,你都满足了吗?
  8. macbook12寸开发java_我买的MacBook 12寸的。我就是嘚瑟一下。
  9. java编写流星_【原创】java 流星划过天空
  10. 淘宝客解析url优惠链接获取商品ID