flutter CupertinoPicker控件

在这里插入图片描述

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});
  final String title;

  
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;
  List pickerChildren = ["1", "2", "3","4","5","6","7","8","9","10"];
  var controllr=FixedExtentScrollController(initialItem:0);


  
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
              Container(
                height: 200,
                child:CupertinoPicker(
                  //子项高度,选中位置的高度
                  itemExtent: 30,
                  scrollController: controllr,
                  //直径比
                  diameterRatio: 1.1,
                  //轴偏移,默认是0.0。控制选中的子widget的左右偏移   正数 >   负数 <  0不偏移
                  offAxisFraction:0,
                  //放大效果 默认false  false关闭  true开启
                  useMagnifier:true,
                  //放大倍数,需先开启放大效果,此参数才有作用。
                  magnification:1.3,
                  //压缩,这个控制的children之间的空隙,和diameterRatio的效果有相似之处。
                  squeeze:1.6,
                  backgroundColor:Colors.white,
                  //滚动选择的回调,每次滚动,都会触发此回调,会将选中的子widget的position返回。
                  onSelectedItemChanged: (int value) {
                    _counter=value;
                    print('The position is $value');
                    //controllr.selectedItem 相当于onSelectedItemChanged中position
                    //当前选择的第几个item
                    print(controllr.selectedItem);
                  },
                  children: pickerChildren.map((e){
                    return Text("${e}天",style:TextStyle(color:Colors.black));
                  }).toList(),
                ),
              ),
            ],
        ),
      ),
    );
  }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Flutter是一种跨平台的移动应用程序开发框架,它提供了丰富的UI控件来构建应用的用户界面。 Flutter的UI控件可以分为基础控件和组合控件两种类型。 基础控件包括Text、Image、Button、TextField、Checkbox等常用的用户界面元素。这些控件可用于构建最基本的用户界面,例如显示文本、图片、处理用户输入等。开发者可以通过自定义这些控件的属性和样式来满足应用需求。 组合控件可以由多个基础控件组合而成,以实现更复杂和功能更强大的用户界面。例如,开发者可以将多个基础控件嵌套在一起,创建出自定义的界面模块。Flutter提供了丰富的组合控件,例如ListView(列表视图)、GridView(网格视图)、AppBar(应用栏)、BottomNavigationBar(底部导航栏)等,开发者可以根据应用需求选择合适的组合控件。 除了基础控件和组合控件Flutter还提供了一些特殊的UI控件,用于处理特定场景的用户交互。例如,Flutter提供了Dialog(对话框)控件,用于显示弹出窗口,让用户进行选择或提供提示信息。Flutter还提供了SnackBar(消息提示条)控件,用于在屏幕底部显示临时的消息提示。 总结来说,Flutter提供了丰富多样的UI控件,开发者可以根据应用需求选择合适的控件来构建漂亮和交互性强的移动应用程序界面。无论是基础控件还是组合控件Flutter都提供了详细的文档和示例代码,方便开发者学习和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值