以以下功能为例:
List<Widget> getListFiles() {
List<Widget> list = [
Container(),
Container(),
Container(),
];
return list;
}
如何插入儿童参数?
Column(
children: <Widget>
[
Text(),
Text(),
getListFiles(), <---
Text(),
]
)
答案 0 :(得分:1)
我认为您需要散布列表,因为您无法将元素类型“列表”分配给列表类型“小部件”。 Spread operator
是需要的功能。您可以在here上关注有关此问题的信息。
与此同时,您可以使用generators
和yield
运算符。
Column(
children: List.unmodifiable(() sync* {
yield Text();
yield Text();
yield* getListFiles();
yield Text();
}()),
);
小部件中用法的完整代码。
import 'package:flutter/material.dart';
class App extends StatelessWidget {
List<Widget> getListFiles() {
List<Widget> list = [Text('hello'), Text('hello1'), Text('hello2')];
return list;
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Stackoverflow'),
),
body: Column(
children: List.unmodifiable(() sync* {
yield Text('a');
yield Text('b');
yield* getListFiles();
yield Text('c');
}()),
),
);
}
}
答案 1 :(得分:1)
现在您可以使用点差运算符-自dart 2.3.0起
Column(
children: <Widget>
[
Text(),
Text(),
...getListFiles(), <---
Text(),
]
)
另外,您可能必须将pubspec.yaml中的最低SDK级别更改为2.3.0