Flutter - 顯示/隱藏控件的幾種方法

1. if 判斷
if(!_hidden)
    Container(
        color: Colors.deepOrangeAccent,
        child: TestWidget(msg: 'if 判斷',),
     )

實(shí)際效果,不會(huì)占位,隱藏時(shí)TestWidget不會(huì)加載,可else一個(gè)占位(則會(huì)加載占位的組件)

2. Opacity
Container(
              color: Colors.red,
              child: Opacity(
                opacity: _hidden?0:1,//會(huì)占位高度
                child: TestWidget(msg: 'Opacity',),
              ),
            ),

實(shí)際效果,會(huì)占位,顯示隱藏TestWidget都會(huì)加載

2. Offstage
Container(
              color: Colors.grey,
              child: Offstage(
                offstage: _hidden,///無占位高度
                child: TestWidget(msg: 'Offstage',),
              ),
            ),

實(shí)際效果,不會(huì)占位,顯示隱藏TestWidget都會(huì)加載

3. Visibility
Container(
              color: Colors.cyanAccent,
              child: Visibility(
                  maintainAnimation: true,
                  maintainState: true,
                  maintainSize: true,//隱藏需要占位,前倆個(gè)也需要為true,內(nèi)部斷言會(huì)判斷,不需要時(shí)都為false,maintainState影響是否加載
                  child: TestWidget(msg: 'Visibility',),
                  visible: _hidden
              ),
            ),

實(shí)際效果,可選擇是否占位,不占位,隱藏時(shí)TestWidget不會(huì)加載,占位,顯示隱藏TestWidget都會(huì)加載

測試:

Visibility選擇占位時(shí),隱藏TestWidget

May-22-2022 20-12-37.gif

Visibility選擇占位時(shí),顯示TestWidget
May-22-2022 20-15-12.gif

Visibility選擇不占位時(shí),隱藏TestWidget
May-22-2022 20-18-19.gif

Visibility選擇不占位時(shí),顯示TestWidget
May-22-2022 20-19-51.gif

怎么選擇看自己需求了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容