当前位置: 首页 > news >正文

如何实现滑动开关功能

文章目录

  • 1 概念介绍
  • 2 使用方法
  • 3 示例代码

我们在上一章回中介绍了PageView这个Widget,本章回中将介绍Switch Widget.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1 概念介绍

我们在这里介绍的Switch是指左右滑动的开关,常用来表示某项设置是打开还是关闭。Flutter中使用Switch类表示该Widget。本章回中将详细介绍它的用法。

2 使用方法

和其它和Widget一样,Switch提供了一些属性来控制自己,接下来我们将介绍这些常用的属性:

  • value属性,该属性表示开关的状态,它有两个值true和false,分别表示Switch打开和关闭;
  • onChanged属性,该属性是一个方法,当开关的状态发生变化时回调它,从方法的参数中可以得到开关的状态;
  • activeColor属性,该属性表示开关打开时的颜色,如果不设置默认为绿色;
  • inactiveThumbColor属性,该属性表示开关关闭时图片的颜色,如果不指定默认为灰色;
  • inactiveTrackColor属性,该属性表示开关关闭时轨道的颜色,如果不指定默认为灰色;
    注意:开关打开时的颜色通过一个属性可以控制,关闭时的颜色通过两个属性来控制。我们在这里说的图片是指开关上的小圆形,该图片可以通过相关的属性来修改。轨道
    是指开关滑动时的轨迹。上面介绍的属性中前两个是必选属性,其它属性是可选属性;

3 示例代码

Widget build(BuildContext context) {return Scaffold(appBar: AppBar(backgroundColor: Colors.purpleAccent,title: const Text("Example of Switch Widget"),),body: Container(color: Colors.lightBlue,alignment: Alignment.center,width: 92,height: 92,child: Switch(//开关打开时的颜色activeColor: Colors.purpleAccent,//开关没有打开时的颜色inactiveThumbColor: Colors.yellow,inactiveTrackColor: Colors.yellow,value: setValue,onChanged: (v) {print("value is ${v}");setState(() {setValue = v;});},),),);
}

上面的代码中,我们把Switch放到了容器中,并且使用不同的颜色来突出开关的效果。此外,我们在onChanged属性对应的方法中通过setState()方法修改了value
属性的值,这样可以让开关与滑动保持联动,如果不这样做,滑动开关时它的状态会变化,松开开关后它会自动恢复成初始状态.在上面的代码中我本来想通过Switch外
面的容器来修改它的大小,但是发现没有效果,目前还没有找到合适的方法来修改它的大小,以后找到后再和大家分享。
看官们,关于Switch Widget相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

http://www.lryc.cn/news/526793.html

相关文章:

  • 数仓的数据加工过程-ETL
  • 自动驾驶中的多传感器时间同步
  • CYT3BB_4BB:Clock system
  • C# OpenCV机器视觉:利用CNN实现快速模板匹配
  • 消息队列篇--通信协议扩展篇--二进制编码(ASCII,UTF-8,UTF-16,Unicode等)
  • Direct Preference Optimization (DPO): 一种无需强化学习的语言模型偏好优化方法
  • 跟我学C++中级篇——容器的连接
  • java求职学习day15
  • 【脚本】如何禁用谷歌浏览器自动更新
  • 【Linux】华为服务器使用U盘安装统信操作系统
  • WPF3-在xaml中引用其他程序集的名称空间
  • Python 在Word中添加、或删除超链接
  • 基于 WPF 平台使用纯 C# 实现动态处理 json 字符串
  • 「全网最细 + 实战源码案例」设计模式——单例设计模式
  • 第01章 19 通过点数据逐级构建球体体数据的综合性小例子
  • CVE-2024-23897-Jenkins任意文件读取漏洞复现
  • 前端react后端java实现提交antd form表单成功即导出压缩包
  • 基于ESP32的桌面小屏幕实战[6]:环境搭建和软件基础
  • 接口(完)
  • 数据结构——实验七·排序
  • JVM堆空间
  • 【详细】SSH公私钥认证与渗透测试攻击场景
  • 常见的多媒体框架(FFmpeg GStreamer DirectShow AVFoundation OpenMax)
  • C++异步future
  • Oracle 12c 中的 CDB和PDB的启动和关闭
  • Vue组件开发-使用 html2canvas 和 jspdf 库实现PDF文件导出 设置页面大小及方向
  • chrome插件:网页图片高清下载
  • 汽车定速巡航
  • CNN-BiLSTM卷积双向长短期记忆神经网络时间序列预测(Matlab完整源码和数据)
  • WPF基础 | WPF 布局系统深度剖析:从 Grid 到 StackPanel