• 微信号:wumiao_357234902
您当前的位置:首页>web前端开发>其它

Flutter控制组件的显示和隐藏的三种方式

作者:Miao 阅读:4279次

方式一:if语句控制

// 例如:
Column(
		mainAxisAlignment: MainAxisAlignment.center,
		children: [
			if (a == "显示")
				Text("显示"),
				Offstage(
					offstage: false,
					child: Text("显示"),
				),
				Visibility(
					visible: true,
					child: Text("显示")
				)
		],
	)

方式二:Offstage组件

offstage属性控制控制child的显示和隐藏,true时:隐藏,false时:显示

Offstage(
		offstage: true,
		child: Text("显示"),
	)

方式三: Visibility

visible属性控制child的显示和隐藏,true时:显示,false时:隐藏

 Visibility(
               visible: true, 
               child: Text("显示")
           )

Offstage和Visibility的区别:

  • Visibility 隐藏/可见,能保存组件的状态;Offstage不能保存组件的状态,组件重新加载。

  • 当Offstage不可见(true)的时候,如果child有动画等,需要手动停掉,Offstage并不会停掉动画等操作。

  • Offstage隐藏时不占空间,Visibility可以设置隐藏时占据空间也可以不占据空间,默认不隐藏时不占据空间

备注:Visibility隐藏时占据空间如下:

Visibility(
  visible:false,
  maintainAnimation: true,
  maintainSize: true,
  maintainState: true,
  child: Text("显示"),
)

强调:maintainSize就是保持大小不变,如果只设置这个属性,会报错,另外两个属性:maintainAnimation和maintainState也必须同时设置。

本站部分文章、数据、素材收集于网络,所有版权均归源网站或原作者所有!

如果侵犯了您的权益,请来信告知我们下线删除,邮箱:357234902@qq.com

标签:其它