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

Flutter 中的 ToggleButtons 小部件:全面指南

Flutter 中的 ToggleButtons 小部件:全面指南

在 Flutter 中,ToggleButtons 是一种允许用户在一组选项中进行切换选择的控件。它通常用于展示一组相关选项,让用户可以快速切换选择。ToggleButtons 是一种水平排列的按钮集合,其中只有一个按钮可以被选中。它们在设计上与 Material Design 中的开关按钮相似,适用于简单的是/否、开/关或真/假类型的选择。

基础用法

ToggleButtons 最基本的用法是定义一组按钮和一个选择回调:

ToggleButtons(children: Map<String, Widget>.fromIterable(['Yes', 'No', 'Maybe'],key: (value) => value,),isSelected: [true, false, false],onPressed: (index) {// 当按钮被按下时执行的操作},
)

在这个例子中,我们创建了三个按钮,其中第一个按钮(“Yes”)默认被选中。

自定义样式

ToggleButtons 提供了一些属性来定制按钮的外观和行为:

按钮样式

  • children: 一个映射,键是按钮的标识符,值是按钮的 Widget。
  • style: 定义未选中按钮的文本样式。
  • selectedStyle: 定义选中按钮的文本样式。
ToggleButtons(children: <String, Widget>{'Yes': Text('Yes'),'No': Text('No'),'Maybe': Text('Maybe'),},style: TextStyle(color: Colors.blueGrey),selectedStyle: TextStyle(color: Colors.blue, fontWeight: FontWeight.bold),// ... 其他属性
)

选中状态

  • isSelected: 一个布尔值列表,表示每个按钮是否被选中。
ToggleButtons(isSelected: [true, false, false],// ... 其他属性
)

按钮回调

  • onPressed: 当用户点击按钮时调用的回调,参数是被点击按钮的索引。
ToggleButtons(onPressed: (index) {// 根据索引处理按钮的选中逻辑},// ... 其他属性
)

实例:颜色选择器

ToggleButtons 可以用于实现颜色选择器,允许用户在一组颜色中选择:

ToggleButtons(children: <String, Widget>{'Red': Container(width: 20.0, height: 20.0, color: Colors.red),'Green': Container(width: 20.0, height: 20.0, color: Colors.green),'Blue': Container(width: 20.0, height: 20.0, color: Colors.blue),},isSelected: [true, false, false],onPressed: (index) {// 处理颜色选择逻辑},
)

实例:尺寸选择

使用 ToggleButtons 可以让用户选择不同的尺寸:

ToggleButtons(children: <String, Widget>{'S': Text('Small'),'M': Text('Medium'),'L': Text('Large'),},isSelected: [false, true, false],onPressed: (index) {// 根据索引更新当前选择的尺寸},
)

实例:动态更新选中状态

可以动态地更新 isSelected 列表来改变按钮的选中状态:

// 假设这是当前选中的尺寸索引
int selectedSizeIndex = 1;// ... 在 Widget 中
ToggleButtons(children: <String, Widget>{'S': Text('Small'),'M': Text('Medium'),'L': Text('Large'),},isSelected: [false, true, false], // 根据 selectedSizeIndex 动态更新onPressed: (index) {setState(() {selectedSizeIndex = index;});},
)

#结语

ToggleButtons 是 Flutter 中一个简单而直观的小部件,它非常适合用于实现单选按钮组。通过掌握 ToggleButtons 的使用,你可以为用户提供清晰而一致的选择界面,从而提升应用的用户体验。

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

相关文章:

  • 【MYSQL】一颗B+树可以保存多少条数据
  • ssm125四六级报名与成绩查询系统+jsp
  • 【Unity从零开始学习制作手机游戏】第01节:控制3D胶囊体运动
  • 内容安全(DPI和DFI解析)
  • 2024数维杯数学建模A题B题C题思路+模型+代码(开赛后第一时间更新)
  • SpringSecurity多表,多端账户登录
  • 绝地求生PUBG新老艾伦格有什么差别 老艾伦格什么时候回归
  • Windows下安装Node.js、npm和electronic,并运行一个Hello, World!脚本程序
  • 【精品案例】化工炼化企业信息化建设解决方案(74页PPT)
  • 【Unity Animation 2D】Unity Animation 2D骨骼绑定与动画制作
  • 工器具管理(基于若依)
  • UE4_照亮环境_光束light beam
  • springboot3项目练习详细步骤(第三部分:文章管理模块)
  • 【面试八股总结】C++11新特性:智能指针
  • 【教程向】从零开始创建浏览器插件(二)深入理解 Chrome 扩展的 manifest.json 配置文件
  • 美易官方:美国房地产贷款逾期率飙升,银行业危机仍可控?现货黄金暂守2360
  • SwiftUI中的@StateObject和@ObservedObject的区别
  • 类与对象(二)
  • LeetCode/NowCoder-链表经典算法OJ练习2
  • 英伟达解码性能NVDEC
  • 文心一言 VS 讯飞星火 VS chatgpt (255)-- 算法导论18.3 1题
  • C++ | Leetcode C++题解之第73题矩阵置零
  • 用 Supabase CLI 进行本地开发环境搭建
  • 三极管 导通条件
  • 一次pytorch分布式训练精度调试过程
  • STM32(GPIO)
  • python设计模式---观察者模式
  • 【论文笔记】KAN: Kolmogorov-Arnold Networks 全新神经网络架构KAN,MLP的潜在替代者
  • 【投稿资讯】区块链会议CCF C -- CoopIS 2024 截止7.10 附录用率
  • React Native 之 开发环境搭建(一)