Flutter ListView中的项目获取它';s高度

Flutter ListView中的项目获取它';s高度,flutter,Flutter,我正在尝试用一些卡片创建一个水平列表视图。 我希望列表视图的高度为X,而卡片的高度为Y,我不知道为什么,但卡片的高度为列表视图的高度。 这就是我所拥有的: class FinanceApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: SafeArea( child: Container(

我正在尝试用一些卡片创建一个水平列表视图。 我希望列表视图的高度为X,而卡片的高度为Y,我不知道为什么,但卡片的高度为列表视图的高度。 这就是我所拥有的:

class FinanceApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SafeArea(
        child: Container(
          color: Color(0x180000),
          child: Column(
            children: <Widget>[
              Header(),
              SizedBox(
                height: 20,
              ),
              Expanded(
                child: Container(
                  width: double.infinity,
                  decoration: BoxDecoration(
                    color: Colors.white,
                    borderRadius: BorderRadius.only(
                      topLeft: Radius.circular(32.0),
                      topRight: Radius.circular(32.0),
                    ),
                  ),
                  child: Column(
                    children: <Widget>[
                      Container(
                        height: 250,
                        child: ListView(
                          scrollDirection: Axis.horizontal,
                          children: <Widget>[
                            CustomCard(),
                            CustomCard(),
                          ],
                        ),
                      ),
                    ],
                  ),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
class FinanceApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
家:安全区(
子:容器(
颜色:颜色(0x180000),
子:列(
儿童:[
Header(),
大小盒子(
身高:20,
),
扩大(
子:容器(
宽度:double.infinity,
装饰:盒子装饰(
颜色:颜色,白色,
borderRadius:仅限borderRadius(
左上:半径。圆形(32.0),
右上角:半径。圆形(32.0),
),
),
子:列(
儿童:[
容器(
身高:250,
子:ListView(
滚动方向:轴水平,
儿童:[
CustomCard(),
CustomCard(),
],
),
),
],
),
),
),
],
),
),
),
);
}
}
编辑:唯一对我有效的方法是将卡片容器包装在另一个容器中,使用填充来获得我想要的大小,但这似乎不是一个很好的解决方案。

请查看以下内容:

      import 'package:flutter/material.dart';


      class StackOverFlow extends StatefulWidget {
        @override
        _StackOverFlowState createState() => _StackOverFlowState();
      }

      class _StackOverFlowState extends State<StackOverFlow> {
        @override
        Widget build(BuildContext context) {
          return Scaffold(
            body:

            Center(
              child: Container(
                color: Colors.blue,
                height: 200.0,
                width: double.infinity,
                child: ListView.builder(
                  physics: BouncingScrollPhysics(),
                  scrollDirection: Axis.horizontal,
                  padding: const EdgeInsets.all(16.0),
                  itemCount: 100,
                  itemBuilder: _buildItem,
                ),
              ),
            ),
          );
        }

        Widget _buildItem (BuildContext context, int index) {
          return Center(
            child: Card(
              child: Text(index.toString()),
            ),
          );
        }
      }

查看以下内容:

      import 'package:flutter/material.dart';


      class StackOverFlow extends StatefulWidget {
        @override
        _StackOverFlowState createState() => _StackOverFlowState();
      }

      class _StackOverFlowState extends State<StackOverFlow> {
        @override
        Widget build(BuildContext context) {
          return Scaffold(
            body:

            Center(
              child: Container(
                color: Colors.blue,
                height: 200.0,
                width: double.infinity,
                child: ListView.builder(
                  physics: BouncingScrollPhysics(),
                  scrollDirection: Axis.horizontal,
                  padding: const EdgeInsets.all(16.0),
                  itemCount: 100,
                  itemBuilder: _buildItem,
                ),
              ),
            ),
          );
        }

        Widget _buildItem (BuildContext context, int index) {
          return Center(
            child: Card(
              child: Text(index.toString()),
            ),
          );
        }
      }

同一个问题没有完美的答案我想我在寻找答案时看到了这条线索,尝试了其中的内容,但仍然一无所获。谢谢,这太奇怪了,现在还没有答案。在颤振回购中提出了一个问题,我们可能需要颤振团队的帮助。同样的问题没有完美的答案。我想我在寻找答案时看到了这条线索,尝试了存在的东西,但仍然什么都没有。谢谢,这太奇怪了,现在还没有答案。在颤振回购中提出了一个问题,我们可能需要颤振团队的帮助。谢谢。是什么导致项目的大小如此之大?我看不到任何设置大小的东西items@JohnDoah如果我们删除此代码中的
Center
小部件,卡就会变得非常高。你不想让他们居中吗?然后使用
Align(对齐:alignment.bottomCenter,)
很好的答案。现在可以工作了。如果你知道所有孩子的身高都一样,谢谢你们!我确实希望卡片居中,这样就可以了。仍然奇怪的是,我们必须做这个“变通”来实现一些我认为应该内置的东西。谢谢。是什么导致项目的大小如此之大?我看不到任何设置大小的东西items@JohnDoah如果我们删除此代码中的
Center
小部件,卡就会变得非常高。你不想让他们居中吗?然后使用
Align(对齐:alignment.bottomCenter,)
很好的答案。现在可以工作了。如果你知道所有孩子的身高都一样,谢谢你们!我确实希望卡片居中,这样就可以了。仍然奇怪的是,我们必须做这个“变通”来实现我认为应该内置的东西。