Я много искал по inte rnet, но не смог найти точное решение. Как получить список выбранных элементов Chips Я передаю список объекта для значений списка параметров, но не могу получить индекс выбранного элемента в методе onChanged
Container(
child: FormField<List<Hashtag>>(
autovalidate: true,
initialValue: hashtagSelectedList,
onSaved: (value) {
Utility.showToast(value.toString());
//hashtagSelectedList[0].hashtag = value.toString();
},
validator: (value) {
if (value.isEmpty) {
return 'Please select some categories';
}
if (value.length > 5) {
return "Can't select more than 5 categories";
}
return null;
},
builder: (state) {
return Column(
children: <Widget>[
Container(
alignment: Alignment.centerLeft,
child: ChipsChoice<Hashtag>.multiple(
value: state.value,
options: ChipsChoiceOption.listFrom<Hashtag, Hashtag>(
source: _hashtags,
value: (i, v) => v,
label: (i, v) => v.hashtag.toString(),
),
onChanged: (val) {
if (val.length > 5) {
Utility.showToast(
"Can't select more than 5 categories");
return;
}
state.didChange(val);
},
itemConfig: ChipsChoiceItemConfig(
showCheckmark: false,
selectedColor: Colors.indigo,
selectedBrightness: Brightness.dark,
unselectedColor: Colors.indigo,
unselectedBorderOpacity: .3,
),
isWrapped: true,
),
),
Container(
padding: EdgeInsets.fromLTRB(15, 0, 15, 15),
alignment: Alignment.centerLeft,
child: Text(
state.errorText ?? state.value.toString(),
style: TextStyle(
color: state.hasError
? Colors.redAccent
: Colors.green),
)),
],
);
},
),
),
Option list - List<Hashtag> _hashtags;
Initial list - List<Hashtag> hashtagSelectedList;
Model -
class Hashtag {
int id;
String hashtag;
int status;
bool isSelected = false;
Hashtag();
Hashtag.fromJson(Map<String, dynamic> json) {
id = json[ApiKeys.id] ?? 0;
hashtag = json[ApiKeys.hashtag] ?? '';
status = json[ApiKeys.status] ?? 0;
}
}
Please give me solutions