網上查了下隱藏控件的主要有兩種:
1.通過透明度
2.通過Offstage
但這兩種方式隱藏的控件都會被加載進來,如果是自定義widget,都會調用initState方法。
如果想顯示的時候才加載,隱藏的時候就移除的話,也有兩種方式:
1.通過方法返回值
buildTestWidget() {
if (xxx) {
// 真正需要展示的空間
return Widget();
} else {
// 空白的占位符,不能返回null
return Container(
width: 0,
height: 0
);
}
}
2.通過返回空白占位符,應該大部分人都能想到,這種方式不優雅。最佳方法如下:
Visibility(
visible: 是否顯示,
child: Widget(),
)
文章轉自:https://blog.csdn.net/xizhao88/article/details/89215875