编辑
使用我尝试过的方法,以及我得到的答案,我无法实现自动调整大小的效果,并且总是让对话框处于最高位置,所以我从使用Scaffold
切换到Containers
。如果有一个检查的方式来做Scaffold
随时张贴。谢谢.
提问
我尝试在ScaffoldColumn小部件中使用MainAxisSize.min使对话框自动调整大小以适合其所有内容,但我仍然得到了完整长度的小部件。为什么MainAxisSize.min在这里不起作用?
这是对话框的代码:
class AddSockPopup extends Dialog {
const AddSockPopup({super.key});
@override
Widget build(BuildContext context) {
return StatefulBuilder(
builder: (context, StateSetter setState){
return Dialog(
elevation: 0,
backgroundColor: Colors.transparent,
child: _buildChild(context, setState),
);
},
);
}
_buildChild(BuildContext context, StateSetter setState) {
return ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(12)),
child: Scaffold(
backgroundColor: Colors.grey[300],
appBar: AppBar(
title: Text('Sock details'),
centerTitle: true,
backgroundColor: Colors.purple[400],
automaticallyImplyLeading: false,
),
body: Padding(
padding: EdgeInsets.all(20.0),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: [...],
),
),
),
);
}
}
2条答案
按热度按时间zbq4xfa01#
用
Column
PackageScaffold
并设置mainAxisSize: MainAxisSize.min
:iugsix8n2#
@Babushka使用
ConstrainedBox
小部件允许动态调整对话框的高度。它会根据您的内容自动调整。我希望这会有帮助!