Flutter开发 组件的隐藏与显示

在页面渲染的过程中,有时候我们需要让widget占位隐藏 & 直接隐藏,这也就是前端开发中常用的

visibility:hidden / visible ;
// 或者
display:none / block ;

在flutter中则可以通过布局的形式来实现这样的需求。

1、占位隐藏

Opacity(
   // 通过给opacity设置0或者1控制其隐藏显示,会一直保持占位
   opacity: tab_index == 1 ? 1 : 0,   
   child: GestureDetector(
       child: Text("占位隐藏"),
       onTap: () => print("占位隐藏"),
   ),
),

2、直接隐藏(不占位)

Offstage(
  // offstage为true时隐藏,为false时显示,不占位
  offstage: HiddenFlag,
  child: GestureDetector(
     child:Text("直接隐藏"),
       onTap: () => print("直接隐藏"),
     ),
),

3、两者兼顾

Visibility(
   // visible 为true时显示,为false时隐藏
   visible: top_toggle_index == 1,
   // 重点来了:
   // maintainSize 控制占位与否,为true时表示占位,但是需要同时maintainAnimation && 
   // maintainState 均为true
   maintainSize: true,
   maintainAnimation: true,
   maintainState: true,
   // 为false时表示不占位隐藏,其他两个参数不做要求
   child: GestureDetector(
          child: Text("两者兼顾"),
      ),
      onTap: () => print("两者兼顾"),
   ),
),

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值