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),
),
],
),
),
),
)
],
),
);
}
}