Flutter底部弹出工具栏实现,使用picker包实现

这篇博客介绍了如何在Flutter项目中实现底部弹出工具栏,作者对flutter_picker库进行了二次封装,支持单列和多列选择。文章详细展示了选择器的样式和使用方法,并提供了代码示例,尽管功能不全,但作为参考对Flutter开发者有所帮助。
摘要由CSDN通过智能技术生成

 flutter推出的时间不算很长,相关的资料也十分稀少,可用的开源项目及相关组件也比较少,最近做项目的时候遇到需要使用选择器的需求,刚好项目中没有相关的代码,考虑到这是一个经常会使用到的场景,所以将其提出单独作为一个工具,方便二次使用。

该工具对开源项目flutter_picker进行了二次封装。实现了底部窗口弹出,单列选择,多列选择。

更多Flutter_Picker相关

使用版本为

flutter_picker: ^1.1.5

 单列选择器样式

单列选择器使用方法

          var list = ["浙江", "江苏", "北京", "上海"];
          showBottomSheetTool().showStringPicker(
              //上下文
              context,
              //默认的索引
              normalIndex: 2,
              title: "请选择省份",
              //要显示的列表
              //可自定义数据适配器
              //adapter: PickerAdapter(),
              data: list,
              //选择事件的回调
Flutter 底部弹出动画可以通过使用 BottomSheet widget 和 AnimatedContainer widget 来实现。 首先,创建一个 StatefulWidget,含一个 bool 变量用于控制 BottomSheet 的显示和隐藏。 ``` class BottomSheetDemo extends StatefulWidget { @override _BottomSheetDemoState createState() => _BottomSheetDemoState(); } class _BottomSheetDemoState extends State<BottomSheetDemo> { bool _isVisible = false; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Bottom Sheet Demo'), ), body: Center( child: RaisedButton( child: Text('Show Bottom Sheet'), onPressed: () { setState(() { _isVisible = true; }); }, ), ), bottomSheet: _isVisible ? Container( decoration: BoxDecoration( color: Colors.white, boxShadow: [ BoxShadow( color: Colors.black.withOpacity(0.2), blurRadius: 5.0, spreadRadius: 1.0, offset: Offset(0.0, -1.0), ), ], ), child: SafeArea( child: AnimatedContainer( duration: Duration(milliseconds: 300), height: _isVisible ? 200.0 : 0.0, child: Center( child: Text('This is a Bottom Sheet'), ), ), ), ) : null, ); } } ``` 在上面的代码中,我们使用了一个 RaisedButton 来触发 Bottom Sheet 的显示,当用户点击按钮后,我们将 _isVisible 变量设置为 true,Bottom Sheet 就会显示出来。 Bottom Sheet 的内容是一个 AnimatedContainer,它的高度可以通过修改 _isVisible 变量来控制。在 AnimatedContainer 中,我们设置了一个动画时长为 300 毫秒,当 _isVisible 变量变化时,高度会从 0.0 到 200.0 进行动画过渡。 在 Bottom Sheet 的外部,我们使用了一个 Container 来装它,并设置了一些阴影效果和背景颜色。我们还使用了 SafeArea 来确保 Bottom Sheet 不会被设备的导航栏遮挡。 通过这种方式,我们可以很容易地实现一个底部弹出动画效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值