Flutter隐藏控件Offstage/Visibility/Opacity/ifelse

  • 发表于
  • flutter

在flutter里隐藏控件可以通过多种方式实现。VisibilityOffstage的区别就是保不保留空间,比如你控件设置了宽高,使用Visibility隐藏,但还会留有一块空白在那里的,类似android的gone和visible一样的效果。另外很多人常用的也有if else判断。

属性说明
Offstage
offstage子组件是否可见,默认true(隐藏)
child子组件
Visibility
child子组件
replacement不可见时显示的组件(当maintainState = false)
visible子组件是否可见,默认true(可见)
maintainState不可见时是否维持状态,默认为false
maintainAnimation不可见时,是否维持子组件中的动画
maintainSize不可见时是否留有空间(设置为true,会报错。如果想隐藏并保留组件空间请使用Opacity)
maintainSemantics不可见时是否维持它的语义(我也没搞明白是什么)
maintainInteractivity不可见时是否具有交互性

代码示例

Offstage

Visibility

if else