flutter有两种方法Offstage和Visibility可以控制widget的隐藏
Offstage
这种方法可以是widget大小为0,GONE的效果,也可以满足动态添加的需求
Offstage( offstage: true, child: Text("补测"), ), 复制代码
如果offstage为true表示隐藏,默认是true。
Visibility
不仅可以实现GONE的效果,还可以实现INVISIBLE的效果,即不显示但还占据空间。还有更多功能,比如隐藏后是否响应事件等等。
Visibility( visible: true, child: Text("补测"), ), 复制代码
如果visible是true代表显示,否则隐藏。
默认隐藏是不占据空间的,如果想保留空间大小,需要添加几个属性
Visibility( visible: true, maintainAnimation: true, maintainSize: true, maintainState: true, child: Text("补测"), ), 复制代码
其中maintainSize就是保持大小不变,但是单独设置这一个不行,会报错,maintainAnimation和maintainState也需要同时设置。