【发布时间】:2020-02-11 13:09:57
【问题描述】:
我正在尝试在容器内动态添加 ChoiceChip/InputChip。 我正在从列表中选择选项并将其添加到容器中。但是我在添加选择时遇到了水平溢出错误。我使用了 Wrap 小部件,但它不起作用。我想使用 wrap 以便下一个选定的芯片位于下一行。有人可以帮忙吗?
List<Widget> _specialWidget = List<Widget>();
DropdownButtonHideUnderline(
child: DropdownButton<String>(
hint: Text(Strings.searchJob),
value: _jobTitle == null
? null
: Lists.jobCatagories[_jobTitle],
items: Lists.jobCatagories.map((String value) {
return new DropdownMenuItem<String>(
value: value,
child: new Text(value),
);
}).toList(),
onChanged: (value) {
setState(() {
_jobTitle =
Lists.jobCatagories.indexOf(value);
_specialWidget.add(Special());
});
},
),
),
这里添加的芯片来自 StatefulWidget
Container(
child: Row(
children: List.generate(
_specialWidget.length,
(i) {
return _specialWidget[i];
},
),
),
),
class Special extends StatefulWidget {
@override
_SpecialState createState() => _SpecialState();
}
class _SpecialState extends State<Special> {
@override
Widget build(BuildContext context) {
// TODO: implement build
return Wrap(
children: <Widget>[
InputChip(
label: Text(
_jobTitle == null ? null : Lists.jobCatagories[_jobTitle],
),
),
],
);
}
}
【问题讨论】:
标签: android ios flutter dart flutter-layout