Flutter 隐藏控件最佳方法

网上查了下隐藏控件的主要有两种:

1.通过透明度

2.通过Offstage

但这两种方式隐藏的控件都会被加载进来,如果是自定义widget,都会调用initState方法。

 

如果想显示的时候才加载,隐藏的时候就移除的话,也有两种方式:

1.通过方法返回值

  1. buildTestWidget() {
  2. if (xxx) {
  3. // 真正需要展示的空间
  4. return Widget();
  5. } else {
  6. // 空白的占位符,不能返回null
  7. return Container(
  8. width: 0,
  9. height: 0
  10. );
  11. }
  12. }

2.通过返回空白占位符,应该大部分人都能想到,这种方式不优雅。最佳方法如下:

  1. Visibility(
  2. visible: 是否显示,
  3. child: Widget(),
  4. )
Share