第一百六十五回 wheelChooser组件

文章目录

  • 1. 概念介绍
  • 2. 使用方法
  • 3. 代码与效果
    • 3.1 示例代码
    • 3.2 运行效果
  • 4. 内容总结

我们在上一章回中介绍了"如何实现Numberpicker"相关的内容,本章回中将介绍 wheelChoose组件.闲话休提,让我们一起Talk Flutter吧。

1. 概念介绍

我们在本章回中介绍的wheelChooser是一个三方包,它除了像NumberPicker一样创建数字选择功能外,它可以选择其它的组件当作被选择的对象,相当于在选择数字功能的基础上做了扩展,它扩展了被选择内容的范围。我们将在本章回中详细介绍该组件的使用方法。

2. 使用方法

和其它的组件一样WheelChooser组件提供了相关的属性来控制自己,下面是常用的属性。

  • datas属性:该属性是数组类型,数组中的值就是被选择的值,因此它用来控制选择数值的范围;
  • horizontal属性:用来控制选择的方向,分水平垂直两个方向;
  • onValueChanged属性:该属性是方法类型,选择某个数值时会回调该属性对应的方法;
  • isInfinite属性:该属性用来控制是否循环显示被选择的内容;

除了这些属性外,该组件还提供了一些工厂方法,通过工厂方法快速创建被选择的内容,比如WheelChooser.number()可以快速创建数字选择器,我们将在稍后的小节中通过示例代码来演示如何使用这些工厂方法。

3. 代码与效果

3.1 示例代码

WheelChooser(///控制滑动方向horizontal: true,///使用装饰可以在选择的内容上方和下方显示一条横线selectTextStyle:TextStyle(///单独使用和复合使用装饰// decoration: TextDecoration.overline,decoration: TextDecoration.combine([TextDecoration.underline,TextDecoration.overline]),) ,///是否循环显示isInfinite: true,onValueChanged: (s) => debugPrint('$s selected'),datas: [0,1,2,3,34,5,6,7,8,9],
),///使用工厂方法,可以创建任意的选择器
SizedBox(height: 150,///可以添加任意的组件,这里添加的是iconchild: WheelChooser.custom(onValueChanged: (value) {},isInfinite: true,children: const [Icon(Icons.looks_3,size: 36,),Icon(Icons.looks_two,size: 36,),Icon(Icons.looks_one,size: 36,),]),
),
///使用两种工厂方法实现数字选择器
SizedBox(///通过控制容器的大小,可以控制显示被选择内容的范围height: 100,child: WheelChooser.integer(///显示内容的大小,默认48itemSize: 50,horizontal: true,isInfinite: true,onValueChanged: (value) => debugPrint('$value'),maxValue: 3,minValue: 0,),
),
SizedBox(height: 100,child: WheelChooser.number(isInfinite: true,onValueChanged: (value) => debugPrint('$value'),maxValue: 3,minValue: 0,),
),
///可以选择任意对象当作被选择对象,因为value是泛型
SizedBox(height: 200,child: WheelChooser.choices(isInfinite: true,onChoiceChanged: (value) {},choices:[WheelChoice(value: 1, title: 'one'),WheelChoice(value: 2, title: 'tow'),WheelChoice(value: 3, title: 'three'),]),
),

3.2 运行效果

我们在上面的示例代码中演示了wheelChooser的基本用法,同时演示了其它工厂方法的使用方法,编译并且运行上面的程序,可以得到以下的运行效果图:
在这里插入图片描述

4. 内容总结

最后,我们对本章回的内容做一个全面的总结:

  • wheelChooser是三主包中提供的组件,它可以实现数字选择功能;
  • wheelChooser扩展了选择范围,不只是数字,其它的组件也可以被选择;
  • whellChooser提供了很多工厂方法,通过工厂方法可以快速创建相关的选择器;

看官们,与"wheelChooser组件"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/163737.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pyqt5的组合式部件制作(一)

以多选一的选择器为例,来实践一下工程实用级别的组合式部件设计。自己之前做的自定义的组合式部件,结构不够简单优化,在实际的工程里面,使用部件的过程比较繁琐。所以,这里来做一个优化的实验。 之所以做这个组合部件&…

iOS实现代码混淆

iOS实现代码混淆 目录 前言 ipaguard界面概览 ipaguard启动界面 ipaguard代码混淆界面 资源文件混淆界面 重签名界面 前言 本文章向大家介绍iOS实现代码混淆,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值…

AR眼镜硬件解决方案_AR/VR智能眼镜安卓主板芯片方案介绍

随着近两年来增强现实(AR)技术的逐渐成熟,采用MT8788芯片解决方案的AR眼镜已经问世。众所周知,AR技术可以帮助开发者打造一个既强大而又实用的混合现实世界,将虚拟与真实世界相结合。 据了解,MT8788芯片采用了多芯片分布式处理系统…

软件测试-根据状态迁移图设计测试用例

测试用例状态迁移图 许多需求用状态机的方式来描述,状态机的测试主要关注状态转移是否正确。对于一个有限状态机,通过测试验证其在给定的条件内是否能够产生需要的状态变化,有没有不可达的状态和非法的状态,是否可能产生非法的状…

Modelsim 使用教程(5)——Analyzing Waveforms

一、概述 Wave窗口允许我们以HDL波形和数据的形式查看仿真结果。Wave窗口被划分为多个窗格。通过单击并在任意两个窗格之间拖动该条,可以调整路径名窗格、值窗格和波形窗格的大小。 二、加载一个设计(Loading a Design) 1、打开modelsim 2、…

HTTP 协议详解-上(Fiddler 抓包演示)

文章目录 HTTP 协议HTTP 协议的工作过程HTTP 请求 (Request)认识URL关于 URL encode认识 "方法" (method)GET 方法POST 方法其他方法请求 "报头" (header)请求 "正文" (body) HTTP 响应详解状态码响应 "报头" (header) HTTP 协议 HTT…

IP代理如何选择?4大误区你别踩!

近年来,我国互联网商业保持持续发展的状态大环境的优化,大大小小的企业都想乘胜追击,大展宏图,积极推动各项数据业务的进程。 而对于跨境业务来说,代理IP是不可或缺的重要工具之一,市面上代理IP类型众多&a…

开源项目管理工具Helper的安装及汉化

什么是 Helper ? Helper 是基于 Laravel 和 Filament 的开源项目管理工具。 官方提供了在线演示:https://project-helper.net 安装 在群晖上以 Docker 方式安装。 数据库理论上是可以使用群晖自带的 MariaDB 的,但老苏为了省事&#xff0c…

Linux中for循环

for do done 复习知识点:cut命令,id命令,finger命令,for循环 程序如上,-d 接分隔符,-f后的数字表示分隔后的列 从结果可以看出,系统上没有finger这个命令,后面会学到yum安装命令&a…

基于ssm的校园快递物流管理系统(java+jsp+ssm+javabean+mysql+tomcat)

博主24h在线,想要源码文档部署视频直接私聊,9.9拿走! 基于javawebmysql的ssm校园快递物流管理系统(javajspssmjavabeanmysqltomcat) 运行环境: Java≥8、MySQL≥5.7、Tomcat≥8 开发工具: eclipse/idea/myeclipse/s…

LabelImg使用笔记

LabelImg使用笔记 文章目录 LabelImg使用笔记一、LabelImg简介1.1、特性1.2、LabelImg的热键 二、LabelImg安装三、3种格式的使用3.1、VOC格式标注3.2、yolo格式标注3.3、json格式 四、LabelMe 和 LabelImg适用场景 一、LabelImg简介 LabelImg 是一个用于图像标注的开源工具&a…

Qt全局定义

一、QtGlobal头文件 头文件中包含了Qt类库的一些全局定义,包括: 基本数据类型全局函数宏定义 二、基本数据类型 三、全局函数 四、宏定义 1.Qt版本相关的宏 1.1 QT_VERSION 这个宏展开为数值形式 0xMMNNPP (MM major, NN minor, PP patch) 表示…