Flutter 集装箱的高度是在颤振中伸展的,即使我放的值较小?
我把容器的高度设为40,但它得到父容器的高度。我认为ListView.builder正在扩展它的子元素,因为如果我用一行容器替换它(看看代码),它就会按预期工作Flutter 集装箱的高度是在颤振中伸展的,即使我放的值较小?,flutter,listview,dart,layout,horizontalscrollview,Flutter,Listview,Dart,Layout,Horizontalscrollview,我把容器的高度设为40,但它得到父容器的高度。我认为ListView.builder正在扩展它的子元素,因为如果我用一行容器替换它(看看代码),它就会按预期工作 import 'package:flutter/material.dart'; class PaymentScreen extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold(body: SafeA
import 'package:flutter/material.dart';
class PaymentScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(body: SafeArea(child: Column(children: [
Container(alignment: Alignment.center, height: 200,
child: ListView.builder(scrollDirection: Axis.horizontal, shrinkWrap: true,
itemBuilder: (BuildContext context, int index) =>
/// this Container is stretching, even it has definite height
Container(alignment: Alignment.center, margin: EdgeInsets.all(8), padding: EdgeInsets.all(8), color: Colors.amber,
/// this width is not listening to me!
width: 40, height: 40,
child: Text('${index + 1}'),),
itemCount: 31,),),],),),);
}
}
发生这种情况是因为容器的性质。容器自然会尽可能多地吸收。要强制它成为您想要的大小,您需要添加一个中间小部件来说明您不需要容器填充的空间 可以使用的两个小部件是
Center
,Align
,Stack
,与定位的
小部件一起使用。您甚至可以使用第二个容器
,但是如果必须使用对齐
属性来避免相同的结果