gpt4 book ai didi

flutter - 在 Flutter 中动态生成 widget

转载 作者:IT王子 更新时间:2023-10-29 07:12:15 27 4
gpt4 key购买 nike

我正在尝试根据特定条件动态生成一组小部件。在这种情况下,我试图生成一个 RadioTiles 列表

这就是我尝试生成的方式

  List _listings = new List();

Widget _getListings() {
// TODO this will accept json objects in order to display the data
List listings = new List();
int i = 0;
for (i = 0; i < 5; i++) {
listings.add(
new RadioListTile<SingingCharacter>(
title: const Text('Lafayette'),
value: SingingCharacter.lafayette,
groupValue: _character,
onChanged: (SingingCharacter value) {
setState(() {
_character = value;
});
},
),
);
}
// return listings;
}

我正在尝试在这样的有状态小部件中显示它:

 return new SafeArea(
child: Column(children: <Widget>[
new Padding(
padding: const EdgeInsets.all(20.0),
child: new Text(
"Verify and Select a Single Listing?",
style: _textStyle,
),
),
ListView(
shrinkWrap: true,
padding: const EdgeInsets.all(20.0),
children: <Widget>[
_getListings(),
],
),
]));

问题是列表的值为空,因此我无法在屏幕上显示任何小部件。

任何见解都会很有用。

谢谢,

编辑:

如果我确实尝试返回一个列表,这就是我所看到的: enter image description here

我不确定这是否是动态创建小部件的最佳方式。

最佳答案

以下是您的代码的一些更新:

      Widget build(BuildContext context) {

return Scaffold(body: SafeArea(
child: Container(child: Column(children: <Widget>[
Padding(
padding: const EdgeInsets.all(20.0),
child: Text("Verify and Select a Single Listing?",),
),
Expanded(child: ListView(
padding: const EdgeInsets.all(20.0),
children: _getListings(), // <<<<< Note this change for the return type
),
)
])
)));
}

List _listings = new List();

List<Widget> _getListings() { // <<<<< Note this change for the return type
List listings = List<Widget>();
int i = 0;
for (i = 0; i < 5; i++) {
listings.add(
RadioListTile<String>(
title: const Text('Lafayette'),
value: "c",
groupValue: "x",
onChanged: (_) {

},
),
);
}
return listings;
}

上面要考虑的一些事情:

我已经对代码进行了更改,以便编译并用于此答案。

  • 为显着变化添加评论
  • 列表 _listings 未使用
  • 你也可以在创建新对象时去掉new关键字(新版本的dart可以处理这个)

结果:

enter image description here

关于flutter - 在 Flutter 中动态生成 widget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55216521/

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