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

这篇具有很好参考价值的文章主要介绍了第一百六十四回 如何实现NumberPicker。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们在上一章回中介绍了"如何在任意位置显示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组件。
第一百六十四回 如何实现NumberPicker,一起Talk Flutter吧,移动开发,Flutter开发,NumberPicker,数字选择器

4.内容总结

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

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

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

到了这里,关于第一百六十四回 如何实现NumberPicker的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 每天一个数据分析题(一百六十)

    以下关于代码片段(使用sklearn)的使用和PCA(主成分分析)的描述中,哪项是正确的? A. preprocessing.scale(data)用于对数据进行归一化处理,确保PCA分析前各特征处于同一量级。 B. PCA(n_components=9)将数据降维了9个主成分。 C. pca.explained_variance_输出的是降维后各主成分的方差。

    2024年02月20日
    浏览(37)
  • JAVA面试题分享一百六十二:Kafka消息重复消费问题?

    消息重复消费的根本原因都在于:已经消费了数据,但是offset没有成功提交。 其中很大一部分原因在于发生了再均衡。 1)消费者宕机、重启等。导致消息已经消费但是没有提交offset。 2)消费者使用自动提交offset,但当还没有提交的时候,有新的消费者加入或者移除,发生

    2024年02月03日
    浏览(36)
  • 一百六十九、Hadoop——Hadoop退出NameNode安全模式与查看磁盘空间详情(踩坑,附截图)

    在海豚跑定时跑kettle的从Kafka到HDFS的任务时,由于Linux服务器的某个文件磁盘空间满了,导致Hadoop的NodeName进入安全模式,此时光执行 hdfs dfsadmin -safemode leave命令语句没有效果( 虽然显示Safe mode is OFF,但没效果,一旦执行还是报错 ) Caused by: org.apache.hadoop.ipc.RemoteException(org

    2024年02月10日
    浏览(30)
  • 一百六十、Kettle——Linux上安装的Kettle9.2.0连接Hive3.1.2

    Kettle9.2.0在Linux上安装好后,需要与Hive3.1.2数据库建立连接 之前已经在本地上用kettle9.2.0连上Hive3.1.2 kettle9.2.0安装包网盘链接 链接:https://pan.baidu.com/s/15Zq9wNDwyMnc3qFVxYOMXw?pwd=zwae  提取码:zwae 1、Hive312的lib里面MySQL驱动包的版本是mysql-connector-java-5.1.37.jar 2、Kettle9.2里MySQL驱动包的

    2024年02月12日
    浏览(55)
  • 一百六十八、Kettle——用海豚调度器定时调度从Kafka到HDFS的任务脚本(持续更新追踪、持续完善)

    在实际项目中,从Kafka到HDFS的数据是每天自动生成一个文件,按日期区分。而且Kafka在不断生产数据,因此看看kettle是不是需要时刻运行?能不能按照每日自动生成数据文件? 为了测试实际项目中的海豚定时调度从Kafka到HDFS的kettle任务情况,特地提前跑一下海豚定时调度这个

    2024年02月10日
    浏览(35)
  • 一百六十五、Kettle——用海豚调度器调度Linux资源库中的kettle任务脚本(亲测、附流程截图)

    在Linux上脚本运行kettle的转换任务、无论是Linux本地还是Linux资源库都成功后,接下来就是用海豚调度Linux上kettle任务 尤其是团队开发中,基本都要使用共享资源库,所以我直接使用海豚调度Linux资源库的kettle任务脚本 1、先开启zookeeper服务 2、再开启海豚调度器服务 3、开启服

    2024年02月11日
    浏览(40)
  • 一百六十八、Kettle——用海豚调度器定时调度从Kafka到HDFS的kettle任务脚本(持续更新追踪、持续完善)

    在实际项目中,从Kafka到HDFS的数据是每天自动生成一个文件,按日期区分。而且Kafka在不断生产数据,因此看看kettle是不是需要时刻运行?能不能按照每日自动生成数据文件? 为了测试实际项目中的海豚定时调度从Kafka到HDFS的kettle任务情况,特地提前跑一下海豚定时调度这个

    2024年02月09日
    浏览(31)
  • 第九十四回 如何打造一个网络框架

    我们在上一章回中介绍了\\\"如何mock数据\\\"相关的内容,本章回中将介绍如 何打造一个网络框架 闲话休提,让我们一起Talk Flutter吧。 最近在项目中使用dio处理网络相关的内容,有些地方的代码不能利用,有些地方的代码耦合度比较高,因此准备在dio上面封装一层网络层,这些可

    2024年02月15日
    浏览(30)
  • 第一百一十四天学习记录:C++提高:类模板案例(黑马教学视频)

    main.cpp代码: myarray.hpp代码: 输出: 总结:能够利用所学知识点实现通用的数组。 个人感悟:学习了这个案例之后接下来的课程就是STL了,STL其实在我工作中写代码时经常碰到,尤其是在读同事代码的时候,因为没有学过,通过自行百度获得碎片的知识导致读起来很很吃力

    2024年02月16日
    浏览(36)
  • 第二百六十九回

    我们在上一章回中介绍了Card Widget相关的内容,本章回中将介绍国际化设置.闲话休提,让我们一起Talk Flutter吧。 我们在这里说的国际化设置是指在App设置相关操作,这样可以让不同国家的用户使用App时呈现不同的语言。总之,就是通过相关的操作,让App支持多个国家的语言。

    2024年01月18日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包