当前位置:网站首页>flutter学习之widget的显示和隐藏
flutter学习之widget的显示和隐藏
2022-07-30 01:38:00 【GY-93】
flutter学习之widget的显示和隐藏
在IOS的开发中,我们对于控件的隐藏和显示, 只需要设置hidden属性, 因为是View的一个基本属性,但是在flutter开发中确是没有直接的属性给你设置, flutter本着万物皆widget的原则。所以flutter中想要实现实现widget显示和隐藏,也需要通过widget来实现。
1、Visbility组件
Widget getWidget(bool show) {
return Visibility(
child: const Text('Visibility控制控件的显示和隐藏'),
// 设置是否可见:true:可见 false:不可见
visible: show,
);
}
在需要隐藏的wdiget外层包裹Visbility组件, 然后通过其中的属性visible来控制组件的显示和隐藏,true:可见, flase: 不可见
注意: Visbility组件隐藏并且不保留空间位置, 其对应的事件也不会响应
- 其它属性介绍:


2、Offstage组件
Widget getWidget2(bool show) {
return Offstage(
// 设置是否可见:true:不可见 false:可见
offstage: !show,
child: Text('offstage控制控件的显示和隐藏'),
);
}
Offstage通过其中offstage属性来控制,其包裹的内容是否可见, true:不可见, false: 可见刚好与Visbility组件中的visible效果相反
**注意:Offstage控制组件隐藏也不保留空间位置,其对应的事件也不会响应。如果Offstage 和 Positioned 一起使用,要把 Offstage 放Positioned里面,包裹 Positioned 会出现问题 **
3、Opacity组件
Widget getWidget3(bool show) {
return Opacity(
opacity: show ? 1 : 0,
child: Text('Opacity控制控件的显示和隐藏'),);
}
Opacity组件他通过其属性opacity来控制,该属性不是bool类型而是 double类型,类似IOS中的透明度属性, 当你设置值为1时,表示完全显示, 值为0时,表示隐藏, [0-1]中间的某个值, 那么widget的显示程度和你设置的值对应。
注意: opacity设置0时,本质上把widget的透明度设置为完全透明,看不见,但是空间并没有消失,并且还占着对应的位置,对应的点击事件也会响应
4、 通过组件的size控制
Widget getWidget4(bool show) {
return Container(
color: Colors.red,
height: show ? 50 : 0,
child: Text('size控制控件的显示和隐藏'),
);
}
通过外层widget的size属性来达到控件的隐藏和显示
5、空组件占位法
Widget getWidget5(bool show) {
return show ? Text("空组件占位法"): Container();
}
通过一个空的组件占位,达到显示和隐藏的目的
边栏推荐
- 日期时间存入数据库会差一天?
- FlutterBoost 3.0出现 Activity无法转换为ExclusiveAppComponent<Activity>的解决办法
- Recommendation systems: feature engineering, common features
- ROS 2知识:通信协议 DDS/RTPS
- How Junior Testers Grow Fast
- jar包解压后再打包为jar
- Fabric Private Data Case
- Recommendation system: collection of user "behavioral data" [use Kafka and Cassandra to process data] [if it overlaps with business data, it also needs to be collected independently]
- 自学HarmonyOS应用开发(47)- 自定义switch组件
- 利用ESP32构造一个ZIGBEE的网络发送转接
猜你喜欢

Graphical LeetCode - 593. Valid Squares (Difficulty: Moderate)

SwiftUI SQLite数据库存储使用教程大合集(2022年版)

TCP/IP 常见问题

图解LeetCode——593. 有效的正方形(难度:中等)

这是一道非常有争议的题,我的分析如下: TCP/IP在多个层引入了安全机制,其中TLS协议位于______。 A.数据链路层 B.网络层 C.传输层 D.应用层

sqlserver 多行合并成一行

记笔记!电源自动测试系统测试电源纹波详细方法

【LeetCode每日一题】——404.左叶子之和

小白必看|不用编程的labview,ATECLOUD完全满足你的需求

postgresql日常运维技能,适合初学者
随机推荐
Linux - install MySQL (detailed tutorial)
Detailed introduction of @RequestParam annotation
Running a Fabric Application
LeetCode 2348. 全 0 子数组的数目
The Rising Star of Interface Test Automation-YApi Interface Management Platform
CAPL中的键值对(hash)数据类型
ROS 2知识:通信协议 DDS/RTPS
新型LaaS协议Elephant Swap给ePLATO提供可持续溢价空间
Huawei's "genius boy" Zhihui Jun has made a new work, creating a "customized" smart keyboard from scratch
泰克Tektronix示波器软件TDS420|TDS430|TDS460上位机软件NS-Scope
What majors become more popular the older they get?
如何在AWS里面的SQL server设置混合登陆
How to set up hybrid login in SQL server in AWS
sqlserver 多行合并成一行
[Microservice~Nacos] Nacos service provider and service consumer
性能测试理论1 | 性能测试难点问题梳理
Interviews with big factories under the trend of layoffs: "ByteDance"
接口测试的作用
The role of interface testing
SwiftUI SQLite数据库存储使用教程大合集(2022年版)