gpt4 book ai didi

dart - 如何在另一个小部件的子属性中传递小部件列表?

转载 作者:IT王子 更新时间:2023-10-29 06:53:35 24 4
gpt4 key购买 nike

以下面的函数为例:

List<Widget> getListFiles() {
List<Widget> list = [
Container(),
Container(),
Container(),
];

return list;
}

如何插入子参数?

Column(
children: <Widget>
[
Text(),
Text(),
getListFiles(), <---
Text(),
]
)

最佳答案

更新

现在 Dart 在 2.3 版本中有了传播运算符。

[
...anotherList
item1
]

没有扩展运算符的答案

我认为您需要展开您的列表,因为您不能将元素类型“List”分配给列表类型“Widget”。 Spread operator 是一个需要的功能。您可以在here上关注有关它的问题。 .

同时,您可以使用生成器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');
}()),
),
);
}
}

关于dart - 如何在另一个小部件的子属性中传递小部件列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55286524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com