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. )

Leave a Reply

邮箱地址不会被公开。 必填项已用*标注

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>