我有一个脚手架,其结构如下:
body : Column(
children : [
Expanded(
child : SingleChildScrollView(
Container (
Column(
//content
)
)
)
),
BottomMenu()
]
)
问题是,如果我未在SingleChildScrollView中定义容器的宽度和高度,则内容将不会显示,但是如果我定义高度,则childscrollview的高度将无法与内容动态配合,我希望高度将内容放入我的容器中,以便我可以滚动到内容结尾。我还是这个新手,所以任何建议和建议都将不胜感激。谢谢
答案 0 :(得分:0)
最好使用Stack代替该列作为顶部小部件,如下所示:
Stack(
children: <Widget>[
SingleChildScrollView(
Container (
Column(
//content
)
)
),
Align(
alignment: Alignment.bottomCenter,
child: BottomMenu(),
),
],
)
这对您有帮助吗?
答案 1 :(得分:0)
您的布局不是最佳做法,请尝试:
return Scaffold(
body: LayoutBuilder(builder: (context, constraints) {
return SingleChildScrollView(
child: Container(
width: constraints.maxWidth,
height: constraints.maxHeight,
child: Column(
children: [
//your content
],
),
),
);
}));
这将创建一个与屏幕大小相同的容器,并且其中包含一列,该列将滚动显示所有内容。
答案 2 :(得分:-1)
我不明白到底是什么问题。但是我可以提供一些想法。
尝试这样的事情,
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Container(
color: Colors.blue,
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height * 0.9,
child: SingleChildScrollView(
child: Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height,
child: ListView(
children: [
Row(
children: [
Container(
margin: const EdgeInsets.only(bottom: 10.0),
height: 100.0,
width: 100.0,
color: Colors.red,
),
],
),
....
],
),
),
),
),
Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height * 0.1,
child: BottomMenu(),
),
],
),
);
}
希望能解决您的问题。