Я использую переменную count как запись индекса моего списка с типом TagColumn. В моем коде есть кнопка с плюсом. Каждый раз, когда вы нажимаете на нее, она должна проверять, ответили ли вы на предыдущее текстовое поле. Если вы это сделали, будет создан новый TagColumn. Другими словами, новое текстовое поле. Однако я получаю RangeError, в то время как использую SetState () для обновления моего счетчика.
Мой код:
class Practice extends StatefulWidget {
@override
_PracticeState createState() => _PracticeState();
}
class _PracticeState extends State<Practice>{
int count = 0;
@override
Widget build(BuildContext context){
List<TagColumn> ok = List.generate(count, (int i) => new TagColumn());
return Scaffold(
backgroundColor: Colors.black,
body: new LayoutBuilder(builder: (context, constraint){
return new Stack(
children: <Widget>[
SingleChildScrollView(
child: SafeArea(
child: new Wrap(
direction: Axis.horizontal,
children: ok,
)
),
),
new Positioned(
child: new Align(
alignment: FractionalOffset.bottomRight,
child: Container(
margin: EdgeInsets.only(bottom: 50.0, right: 40.0),
child: RawMaterialButton(
onPressed: (){
setState(() {
if(count != 0 && ok[count].text.text.isEmpty){
}
else{
count ++;
}
});
},
shape: CircleBorder(),
child: Icon(
Icons.add_circle,
size: 100.0,
color: Color(0xffd3d3d3),
),
)
)
)
)
],
);
}),
);
}
}
Ошибка:
RangeError (index): Invalid value: Only valid value is 0: 1
Если вам нужно больше контекста, вот предыдущий вопрос, который у меня был о ранней ошибке в моем коде: Getter _text не определен для класса TagColumn во Flutter