第一百六十四回 如何实现NumberPicker

news2024/10/6 14:33:17

文章目录

  • 1.概念介绍
  • 2.使用方法
    • 2.1 NumberPicker
    • 2.2 CupertinoPicker
  • 3.示例代码
  • 4.内容总结

我们在上一章回中介绍了"如何在任意位置显示PopupMenu"相关的内容,本章回中将介绍如何实现NumberPicker.闲话休提,让我们一起Talk Flutter吧。

1.概念介绍

我们在本章回中介绍的NumberPicker主要用来实现数字选择功能,比如选择年月日,当然也可以使用YearPicker实现,不过YearPicer是把年月日当作一个整体来选择,在界面上同时显示年月日三个选项,如果只想选择其中的某一个,而不显示其它选项,那么它就无能为力,因为该组件不支持这样去设置。

那么我们该如何实现这样的功能呢?答案是使用Numberpicker组件,或者CupertinoPicker组件。它们可以把年月日当作数字并且进行单独显示,本章回中将详细介绍这两个组件的使用方法。

2.使用方法

2.1 NumberPicker

和其它组件一样NumberPicker组件提供了相关的属性来控制自己,接下来我们将介绍该组件中常用的属性,掌握这些属性后就可以使用该组件了。

  • maxValue属性:用来控制picker中可以选择的最大数值;
  • minValue属性:用来控制picker中可以选择的最小数值;
  • value属性:用来控制picker中当前选择的数值;
  • step属性:用来控制picker滚动时的步进值,默认值为1;
  • axis属性:用来控制选择的方向,分水平垂直两个方向;
  • onChanged属性:该属性是方法类型,选择某个数值时会回调该属性对应的方法;

2.2 CupertinoPicker

除了NumberPicker可以实现数字选择功能外,CupertinoPicker组件也可以实现同样的功能,接下来我们介绍一下该组件的常用属性。

  • backgroundColor属性:主要用来控制选择器的背景颜色;
  • itemExtent属性:主要用来控制被选择内容的数量;
  • onSelectedItemChanged属性:该属性是方法类型,选择某个数值时会回调该属性对应的方法;
  • children属性:该属性List<widget>类型,主要用来存放被选择的内容;

3.示例代码

NumberPicker(
  ///这个是当前选择的值
  value: _selectedValue,
  itemCount: 3,
  itemHeight: 60,
  decoration: BoxDecoration(
    border:Border.all(color: Colors.redAccent,width: 3,),
    borderRadius: BorderRadius.circular(15),
  ),
  ///设置picker方向
  axis: Axis.vertical,
  ///是否启用振动,默认不启用
  // haptics: true,
  
  ///循环显示
  infiniteLoop: true,
  ///设置值的范围
  maxValue: 9,
  minValue: 0,
  step: 1,
  ///不修改数值的话,选择内容不在选择框架内
  onChanged: (value){
    setState(() {
      _selectedValue = value;
    });
  },
),
child: CupertinoPicker(
  ///设置整个Picker的颜色
  backgroundColor: Colors.purpleAccent,
  itemExtent: 48,
  ///选择某个内容时回调此方法
  onSelectedItemChanged: (int value) {
    debugPrint('item $value is selected');
  },
  ///最好设置为true,不然会发生选项重叠的现象
  looping: true,
  children: [
    ...List.generate(5, (index) => SizedBox(width:60,height:48,child: Text('item ${index+1}')),),
  ],
),

在上面的代码中,我们提供了NumberPickerCupertinoPicker两个组件的示例代码,代码中添加了相关的注释,这样方便大家理解代码。

把上面的示例代码放到某个页面中后就可以运行了,下面是程序的运行效果图。图中上方紫色背景的选择器是CupertinoPicker组件,下面的灰色背景的选择器是NumberPicker组件。
在这里插入图片描述

4.内容总结

最后,我们对实现数字选择功能的这两个组件做一个总结,主要包含它们的相同点和不同点:

  • NumberPicker组件和CupertinoPicker组件都可以实现数字选择器;
  • NumberPicker只有选择数字,CupertinoPicker可以选择任意的组件;
  • NumberPicker由三方包提供,CupertinoPicker是官方包中自带的组件;

看官们,与"如何实现Numberpicker"相关的内容就介绍到这里。此外,我还有一个疑问:NumberPicker也算是比较实用的组件,而且Android中自带该组件,为什么Flutter官方不提供这样的组件呢?欢迎大家在评论区交流与讨论。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【知识点随笔分析 | 第七篇】什么是Cookie、Session、Token

前言&#xff1a; 当今互联网世界的发展让网站和应用程序扮演着重要的角色。为了实现用户身份验证、数据传输和用户状态管理等功能&#xff0c;开发人员常常使用一些关键技术来确保安全性和持久性。而在这些技术中&#xff0c;Cookie、Session和Token是最常见和广泛使用的三种机…

C++基础知识(三) -- 引用

1 引用概念 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名(俗称)&#xff0c;编译器不会为引用变量开辟内存空间&#xff0c;它和它引用的变量共用同一块内存空间。 比如&#xff1a;李逵&#xff0c;在家称为"铁牛"&#xff0c;江湖上人称"…

动态内存管理<C语言>

✨Blog&#xff1a;&#x1f970;不会敲代码的小张:)&#x1f970; &#x1f251;推荐专栏&#xff1a;C语言&#x1f92a;、Cpp&#x1f636;‍&#x1f32b;️、数据结构初阶&#x1f480; &#x1f4bd;座右铭&#xff1a;“記住&#xff0c;每一天都是一個新的開始&#x1…

深度学习基础之GFLOPS(2)

什么是GFLOPS 神经网络的GFLOPS&#xff08;Giga FLoating-Point Operations Per Second&#xff09;代表了神经网络模型执行计算的速度和计算能力。这可以用一个类比来解释&#xff1a; GFLOPS就像神经网络模型的"运算速度"标签。 想象你有两个数学家&#xff0c…

macOS下 /etc/hosts 文件权限问题修复方案

文章目录 前言解决方案权限验证 macOS下 etc/hosts 文件权限问题修复 前言 当在 macOS 上使用 vi编辑 /etc/hosts 文件时发现出现 Permission Denied 的提示,就算在前面加上 sudo 也照样出现一样的提示,解决方案如下; 解决方案 可以尝试使用如下命令尝试解除锁定; sudo chf…

Spring5应用之Cglib动态代理

作者简介&#xff1a;☕️大家好&#xff0c;我是Aomsir&#xff0c;一个爱折腾的开发者&#xff01; 个人主页&#xff1a;Aomsir_Spring5应用专栏,Netty应用专栏,RPC应用专栏-CSDN博客 当前专栏&#xff1a;Spring5应用专栏_Aomsir的博客-CSDN博客 文章目录 前言Cglib动态代理…

STM32--基于STM32的智能家居设计与实现

本文详细介绍基于STM32F103C8T6的智能家居设计与实现&#xff0c;详细设计资料见文末链接 一、功能模块介绍 智能家居系统系统图如下所示&#xff0c;主要包括温湿度传感器、OLED液晶显示&#xff0c;WIFI物联网模块、人体红外预警模块、烟雾传感器模块、蜂鸣器模块 &#…

手边酒店V2独立版小程序 1.0.21 免授权+小程序前端

手边酒店小程序独立版酒店宾馆订房系统支持创建多个小程序&#xff0c;让每一个客户单独管理属于自己的小程序。后台支持一键入住&#xff0c;一键退款、退押金、钟点房支持微信支付、模板消息。客服实时收到新的订单信息&#xff0c;可以在手机端处理订单。支持按日期维护房价…

浅谈wor2vec,RNN,LSTM,Transfermer之间的关系

浅谈wor2vec&#xff0c;RNN&#xff0c;LSTM&#xff0c;Transfermer之间的关系 今天博主谈一谈wor2vec&#xff0c;RNN&#xff0c;LSTM&#xff0c;Transfermer这些方法之间的关系。 首先&#xff0c;我先做一个定位&#xff0c;其实Transfermer是RNN&#xff0c;LSTM&…

ActiveMQ消息中间件介绍

一、ActiveMQ简介 ActiveMQ是Apache出品&#xff0c;最流行的&#xff0c;能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE1.4规范的JMS Provide实现。尽管JMS规范出台已经是很久的事情了&#xff0c;但是JMS在当今的J2EE应用中仍然扮演这特殊的地位。 二、Active…

【逐步剖C】-第十一章-动态内存管理

一、为什么要有动态内存管理 从我们平常的学习经历来看&#xff0c;所开辟的数组一般都为固定长度大小的数组&#xff1b;但从很多现实需求来看需要我们开辟一个长度“可变”的数组&#xff0c;即这个数组的大小不能在建立数组时就指定&#xff0c;需要根据某个变量作为标准。…

小样本学习——匹配网络

目录 匹配网络 &#xff08;1&#xff09;简单介绍&#xff1a; &#xff08;2&#xff09;专业术语 &#xff08;3&#xff09;主要思想 &#xff08;4&#xff09;训练过程 问题 回答 MANN 匹配网络 &#xff08;1&#xff09;简单介绍&#xff1a; Matching netwo…

【C++设计模式之装饰模式:结构型】分析及示例

装饰模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许在运行时动态地给一个对象添加额外的行为。 描述 装饰模式通过创建一个包装器&#xff08;Wrapper&#xff09;来包裹原始对象&#xff0c;并在原始对象的行为前后添加额外的功能。…

JAVA学习(5)-全网最详细~

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…

git提交代码的流程

1.拉取代码 当你进入了一家公司就需要拉去公司的代码进行开发,此时你的项目小组长会给你个地址拉代码, git clone 公司项目的地址 此时如果不使用了这个方式拉去代码,拉去的是master分支上的代码,但是很多数的情况下&#xff0c;公司的项目可能会在其它的分支上,因此到公…

XXL-JOB源码梳理——一文理清XXL-JOB实现方案

分布式定时任务调度系统 流程分析 一个分布式定时任务&#xff0c;需要具备有以下几点功能&#xff1a; 核心功能&#xff1a;定时调度、任务管理、可观测日志高可用&#xff1a;集群、分片、失败处理高性能&#xff1a;分布式锁扩展功能&#xff1a;可视化运维、多语言、任…

微信小程序代驾系统源码(含未编译前端,二开无忧) v2.5

简介&#xff1a; 如今有越来越多的人在网上做代驾&#xff0c;打造一个代驾平台&#xff0c;既可以让司机增加一笔额外的收入&#xff0c;也解决了车主酒后不能开发的问题&#xff0c;代驾系统基于微信小程序开发的代驾系统支持一键下单叫代驾&#xff0c;支持代驾人员保证金…

【15】c++设计模式——>抽象工厂模式

在海贼世界中&#xff0c;位于水之都的弗兰奇一家是由铁人弗兰奇所领导的以拆船为职业的家族&#xff0c;当然了他们的逆向工程做的也很好&#xff0c;会拆船必然会造船。船是海贼们出海所必备的海上交通工具&#xff0c;它由很多的零件组成&#xff0c;从宏观上看它有这么几个…

数据结构--》探索数据结构中的字符串结构与算法

本文将带你深入了解串的基本概念、表示方法以及串操作的常见算法。通过深入理解串的相关概念和操作&#xff0c;我们将能够更好地应用它们来解决算法问题。 无论你是初学者还是进阶者&#xff0c;本文将为你提供简单易懂、实用可行的知识点&#xff0c;帮助你更好地掌握串在数据…

【云笔记篇】Microsoft OneNote笔记插件推荐OneMore

【云笔记篇】Microsoft OneNote笔记插件推荐OneMore OneMore插件是一款非常强大&#xff0c;多达一百多个扩展功能的OneNote笔记插件&#xff0c;而且免费开源&#xff0c;不断更新的优秀插件—【蘇小沐】 1、实验 【OneMore官网&#xff1a;OneMore - a OneNote add-in (on…