赞
踩
解决方案:
1、 升级到新版本的Flutter,当前目前使用版本是1.22.5及以后就可
2、源码解读,官方调整原来写死比例的方案:
- @override
- BoxConstraints getConstraintsForChild(BoxConstraints constraints) {
- return BoxConstraints(
- minWidth: constraints.maxWidth,
- maxWidth: constraints.maxWidth,
- minHeight: 0.0,
- maxHeight: isScrollControlled //这个字段默认为false,设置成true达到自定义高度的目的
- ? constraints.maxHeight
- : constraints.maxHeight * 9.0 / 16.0,
- );
- }
3、实战中只要将isScrollControlled方法设置为true,然后重新设置一下builder里面的布局高度就可解决:
- showModalBottomSheet<int>(
- context: context,
- isScrollControlled: true,
- shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.only(
- topLeft: Radius.circular(30), topRight: Radius.circular(30)),
- ),
- builder: (BuildContext context) {
- return Container(
- height: 580,//这里调整高度即可,建议按照屏幕高度比例来计算
- decoration: BoxDecoration(
- borderRadius: BorderRadius.only(
- topLeft: Radius.circular(30), topRight: Radius.circular(30)),
- ),
- );
- },
- );

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。