Flutter 开关属性

news/2024/12/21 6:38:50/

Switch 构造函数的样式

const Switch({Key? key,required this.value,           // 当前开关的状态,布尔值(true 表示打开,false 表示关闭)required this.onChanged,       // 状态切换时的回调函数,执行您定义的逻辑this.activeColor,              // 开关打开时圆形部分的颜色this.activeTrackColor,         // 开关打开时轨道的颜色this.inactiveThumbColor,       // 开关关闭时圆形部分的颜色this.inactiveTrackColor,       // 开关关闭时轨道的颜色this.activeThumbImage,         // 开关打开时圆形部分的图片this.inactiveThumbImage,       // 开关关闭时圆形部分的图片this.materialTapTargetSize,    // 调整触摸区域的大小this.dragStartBehavior = DragStartBehavior.start, // 控制拖动行为
});

CupertinoSwitch 构造函数的样式

const CupertinoSwitch({Key? key,                        // 小部件的唯一标识符required this.value,             // 当前开关的状态,布尔值,true 为打开,false 为关闭required this.onChanged,         // 当开关状态改变时的回调函数,接受新的状态 (bool) 作为参数this.activeColor = CupertinoColors.systemGreen, // 开关打开时,圆形部分的颜色(默认为绿色)this.trackColor,                 // 开关关闭时轨道的颜色(默认浅灰色,某些版本需要自行设置)this.thumbColor,                 // 开关滑块的颜色(默认为白色)this.dragStartBehavior = DragStartBehavior.start, // 拖动行为,定义用户如何开始拖动开关
});

CupertinoSwitch和Switch的区别

属性CupertinoSwitchSwitch
平台风格模拟 iOS 系统的开关样式,符合 iOS 设计规范主要是 Android 风格的开关,符合 Material Design 规范
默认外观具有 iOS 风格的滑块和轨道,滑块为圆形,整体呈现圆滑且简洁的外观具有 Material Design 风格,开关较大,颜色和样式上更偏向 Android
外观定制支持 activeColortrackColorthumbColordragStartBehavior 等定制项支持 activeColorinactiveTrackColorinactiveThumbColoractiveTrackColorthumbColor 等定制项
使用场景通常在 iOS 风格的应用中使用通常在 Android 风格的应用中使用或跨平台应用中使用
交互体验更符合 iOS 的交互方式,支持滑动并且视觉上简洁适合 Android 风格的交互,支持点击或拖动触发
位置位于 flutter/cupertino.dart 包中位于 flutter/material.dart 包中
自定义样式CupertinoSwitch 的外观与默认值深度绑定,更难做到深度定制Switch 更灵活,允许更详细的颜色、轨道、滑块样式定制

示例代码


import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {@overrideWidget build(BuildContext context) {return MaterialApp(home: SwitchDemo(),);}
}class SwitchDemo extends StatefulWidget {@override_SwitchDemoState createState() => _SwitchDemoState();
}class _SwitchDemoState extends State<SwitchDemo> {bool _isSwitched = false;@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text('Switch 示例')),body: Center(child: Column(children: [Switch(value: _isSwitched,onChanged: (bool value) {setState(() {_isSwitched = value;});},activeColor: Colors.green, // 打开时的颜色inactiveThumbColor: Colors.red, // 关闭时圆形部分的颜色inactiveTrackColor: Colors.grey, // 关闭时轨道的颜色),CupertinoSwitch(value: _isSwitched,onChanged: (bool value) {setState(() {_isSwitched = value;});},activeColor: CupertinoColors.activeGreen,trackColor: CupertinoColors.systemGrey,)],),),);}
}


http://www.ppmy.cn/news/1556851.html

相关文章

大数据-255 离线数仓 - Atlas 数据仓库元数据管理 数据血缘关系 元数据

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; Java篇开始了&#xff01; 目前开始更新 MyBatis&#xff0c;一起深入浅出&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff0…

不同协议下的接口测试方案设计

什么是多协议接口测试&#xff1f; 多协议接口测试是指在不同协议&#xff08;如HTTP、HTTPS、TCP/IP、SOAP、REST等&#xff09;下进行的接口测试。这类测试的主要目标是确保不同协议间的组件可以顺畅地进行通信&#xff0c;从而提高系统的整体可用性和稳定性。接口测试不仅可…

回归预测 | MATLAB实现CNN-BiLSTM卷积神经网络结合双向长短期记忆神经网络多输入单输出回归预测

回归预测 | MATLAB实现CNN-BiLSTM卷积神经网络结合双向长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现CNN-BiLSTM卷积神经网络结合双向长短期记忆神经网络多输入单输出回归预测预测效果基本介绍程序设计参考资料预测效果 基本介绍 CNN-BiLSTM,即卷积神经…

linux CentOS系统上卸载docker

一、停止Docker服务 首先&#xff0c;需要停止Docker服务。使用systemctl命令来停止Docker服务&#xff1a; bash复制代码sudo systemctl stop docker二、卸载Docker软件包 接下来&#xff0c;使用CentOS的包管理器yum来卸载Docker软件包。根据安装的Docker版本和组件&#…

Hmsc包开展群落数据联合物种分布模型分析通用流程(Pipelines)

HMSC&#xff08;Hierarchical Species Distribution Models&#xff09;是一种用于预测物种分布的统计模型。它在群落生态学中的应用广泛&#xff0c;可以帮助科学家研究物种在不同环境条件下的分布规律&#xff0c;以及预测物种在未来环境变化下的潜在分布范围。 举例来说&a…

点击数字层级从 admin.vue 跳转到 inviter-list.vue 组件

文章目录 1、admin.vue2、inviter-list.vue 1、admin.vue 好的&#xff0c;我们来分析一下代码中“层级”这一列的逻辑&#xff0c;并探讨它与后端的关联。 “层级” 列的逻辑 在您的代码中&#xff0c;“层级”列的渲染逻辑如下&#xff1a; <el-table-columnalign&quo…

# Oracle 深入学习 Part 11: Managing Tables(管理表)

作为oracle初学者&#xff0c;在此只讨论普通表类型。 oracle表中的数据类型 ​​​​ 数据类型主要分为四类&#xff1a;文本&#xff0c;数值&#xff0c;日期&#xff0c;二进制 文本&#xff1a; CHAR(N) &#xff1a;固定长字符类型&#xff0c;N为字符长度。内容不够…

自动驾驶控制与规划——Project 2: 车辆横向控制

目录 零、任务介绍一、环境配置二、算法三、代码实现四、效果展示 零、任务介绍 补全src/ros-bridge/carla_shenlan_projects/carla_shenlan_stanley_pid_controller/src/stanley_controller.cpp中的TODO部分。 一、环境配置 上一次作业中没有配置docker使用gpu&#xff0c;…