可以说我有这个:
child: new Column(
children: <Widget>[
Center(child: Text("This is my title"),),
]
Run Code Online (Sandbox Code Playgroud)
有没有办法让我在静态居中文本之后将列表添加到此列?或者我必须添加使用此方法:
List<Widget> widgets();
widgets.add(Center(child: Text("This is my title"),));
for (var a=0;a<5;a++) {
widgets.add(Text("$a"));
}
Run Code Online (Sandbox Code Playgroud)
然后添加所有列表,如下所示:
child: new Column(
children: widgets
Run Code Online (Sandbox Code Playgroud)
这是一个小示例,您可以在其中拥有居中的标题和数字列表。您可以通过点击按钮来修改列表:
List<int> numbers = [1, 2, 3];
Run Code Online (Sandbox Code Playgroud)
如果您希望标题随列表一起滚动:
ListView(
children: <Widget>[
RaisedButton(
child: Text("Add number"),
onPressed: () {
setState(() {
numbers.add(numbers.length + 1);
});
},
),
Center(
child: Text("This is my title"),
),
ListView.builder(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: numbers.length,
itemBuilder: (context, count) {
return Text('Number: ${numbers[count]}');
},
),
],
)
Run Code Online (Sandbox Code Playgroud)
如果您希望标题固定并仅滚动列表:
Column(
children: <Widget>[
RaisedButton(
child: Text("Add number"),
onPressed: () {
setState(() {
numbers.add(numbers.length + 1);
});
},
),
Center(
child: Text("This is my title"),
),
Expanded(
child: ListView.builder(
shrinkWrap: true,
itemCount: numbers.length,
itemBuilder: (context, count) {
return Text('Number: ${numbers[count]}');
},
),
),
],
)
Run Code Online (Sandbox Code Playgroud)
这是另一个不使用 ListView.builder 的简单替代方案:
ListView(
children: <Widget>[
RaisedButton(
child: Text("Add number"),
onPressed: () {
setState(() {
numbers.add(numbers.length + 1);
});
},
),
Center(
child: Text("This is my title"),
),
Column(
children: getWidgets(),
),
],
)
List<Widget> getWidgets() {
return numbers.map((number) => Text('Number: $number')).toList();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1505 次 |
| 最近记录: |