如何解决在 NestedScrollView 中不遵守正文大小和边距
我试图理解为什么在这种情况下,为什么在“容器”下面的代码中,即使有限制或大小,也会填充整个空间。
return Scaffold(
body: SafeArea(
child: nestedScrollView(
physics: BouncingScrollPhysics(),headerSliverBuilder: (context,innerBoxIsScrolled) {
return <Widget>[];
},body: Container(
constraints: BoxConstraints(
maxHeight: 100,minWidth: 100,),color: Colors.red,height: 100,width: 100,child: Container(
constraints: BoxConstraints(
maxHeight: 50,minWidth: 50,color: Colors.yellow,height: 50,width: 50,child: Text('a'),);
解决方法
您可以在整个页面上添加一个 Column
来控制每个 Container
的大小
你可以试试这个:
return Scaffold(
body: SafeArea(
child: NestedScrollView(
physics: BouncingScrollPhysics(),headerSliverBuilder: (context,innerBoxIsScrolled) {
return <Widget>[];
},body: Column(
children: [
Container(
color: Colors.red,height: 100,width: 100,child: Container(
margin: EdgeInsets.all(25.0),color: Colors.yellow,height: 50,width: 50,child: Text('a'),),],);
,
如果孩子想要与父母不同的尺寸,而父母没有足够的信息来对齐它,那么孩子的尺寸可能会被忽略。定义对齐时要具体。
在这里,您有第一个 Container 想要获得其大小,但它们被忽略,因为 screen 强制它与屏幕大小完全相同,减去您可能传递给 SliverAppBar
的 headerSliverBuilder
。>
为了 Container
保持其大小,设置父级,这将有自己的约束,例如Center
、Column
、Stack
等
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。