Flutter 如何在一个列中包含两个小部件,其中一个是可滚动的列?

Flutter 如何在一个列中包含两个小部件,其中一个是可滚动的列?,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,因此,我在一个列中有两个小部件,一个是容器(顶部小部件),另一个是列(底部小部件,应可滚动),但列不可滚动,如下图所示: 下面是代码中的容器和列: <Widget>[ topBar, // Container Container( color: Colors.transparent, child: SingleChildScrollView( child: Column( // Column in container

因此,我在一个列中有两个小部件,一个是
容器(顶部小部件),另一个是
列(底部小部件,应可滚动),但
不可滚动,如下图所示:

下面是代码中的
容器

<Widget>[
    topBar, // Container
    Container(
      color: Colors.transparent,
      child: SingleChildScrollView(
        child: Column( // Column in container
          children: <Widget>[
            Text(
              "Test",
              style: TextStyle(fontSize: 50),
            ),
            Text(
              "Test",
              style: TextStyle(fontSize: 50),
            ),
            Text(
              "Test",
              style: TextStyle(fontSize: 50),
            ),
            // Insert Other Text Widgets below            
          ],
        ),
      ),
    )
  ]
我试过使用类似问题中提到的
ListView
,但它的作用是相同的

我怀疑这是因为它试图超越父容器,父容器是不可滚动的,但我不知道如何通过它


更新

只是想澄清一下,我想做的是有一个固定顶部的滚动条,我不想滚动条太多


在Android上,它只是创建两个布局的一个例子,其中一个里面有一个滚动视图。但是我猜颤振做的事情不一样,我似乎不能把我的头绕在它周围。

如果你把你的第二个
放在一个
扩展的
中,它会尽量占据更多的空间,然后
中溢出的元素会滚动。这会解决你的问题。例如:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(home: HomePage());
  }
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    Widget topBar = Container(
      margin: EdgeInsets.all(0),
      padding: EdgeInsets.fromLTRB(20, 0, 20, 0),
      child: Text(
        'Top Container',
        style: TextStyle(
            color: Colors.white, fontWeight: FontWeight.bold, fontSize: 25.0),
      ),
    );
    return Scaffold(
      body: Column(
        children: <Widget>[
          topBar, // Container

          Expanded( // <- Add this

            child: Container(
              color: Colors.transparent,
              child: SingleChildScrollView(
                child: Column(
                  // Column in container
                  children: <Widget>[
                    for (int i = 0; i < 30; i++)
                      Text(
                        "Test",
                        style: TextStyle(fontSize: 50),
                      ),
                  ],
                ),
              ),
            ),
          )
        ],
      ),
    );
  }
}
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回资料app(主页:HomePage());
}
}
类主页扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
控件topBar=容器(
边距:所有边集(0),
填充:从LTRB(20,0,20,0)开始的边缘设置,
子:文本(
“顶部容器”,
样式:TextStyle(
颜色:Colors.white,fontwweight:fontwweight.bold,fontSize:25.0),
),
);
返回脚手架(
正文:专栏(
儿童:[
顶栏,//容器

Expanded(//请澄清一些事情。您在一列中有一列?您还可以分享您想要实现的吗?@Joãosaares-最顶端的列用于顶部容器,而列bellowUnderFlex子列具有非零flex,但传入的高度约束是无限的。这是错误。嗯,是第1列(我们层次结构中最高的一个)在任何其他可能影响其维度的小部件中?我尝试在测试应用程序中运行此代码,但没有出现错误。我将编辑答案以显示我的整个测试应用程序。是的,它在生成器小部件中,如:
Builder(Builder:(context)=>Column(…
我将按您的方式尝试:)有效:)…问题是外列本身在一个容器中,去掉了它,它与
Expanded()
小部件一起工作。谢谢!!!
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(home: HomePage());
  }
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    Widget topBar = Container(
      margin: EdgeInsets.all(0),
      padding: EdgeInsets.fromLTRB(20, 0, 20, 0),
      child: Text(
        'Top Container',
        style: TextStyle(
            color: Colors.white, fontWeight: FontWeight.bold, fontSize: 25.0),
      ),
    );
    return Scaffold(
      body: Column(
        children: <Widget>[
          topBar, // Container

          Expanded( // <- Add this

            child: Container(
              color: Colors.transparent,
              child: SingleChildScrollView(
                child: Column(
                  // Column in container
                  children: <Widget>[
                    for (int i = 0; i < 30; i++)
                      Text(
                        "Test",
                        style: TextStyle(fontSize: 50),
                      ),
                  ],
                ),
              ),
            ),
          )
        ],
      ),
    );
  }
}