updateChange method
提供一个方法修改数据,并通知子组件 刷新
Implementation
void updateChange(int value) {
if (widget.enable) {
setState(() {
if (widget.allowMultipleChoice && null != widget.defaultChecks) {
List<int> temp = [];
if (widget.mutualExclusionIndex >= 0) {
if (value == widget.mutualExclusionIndex) {
widget.defaultChecks?.clear();
widget.defaultChecks?.add(value);
} else {
widget.defaultChecks?.remove(widget.mutualExclusionIndex);
widget.defaultChecks!.contains(value)
? widget.defaultChecks!.remove(value)
: widget.defaultChecks!.add(value);
}
for (var element in widget.defaultChecks!) {
temp.add(element);
}
} else {
widget.defaultChecks!.contains(value)
? widget.defaultChecks!.remove(value)
: widget.defaultChecks!.add(value);
for (var element in widget.defaultChecks!) {
temp.add(element);
}
}
widget.defaultChecks?.clear();
widget.defaultChecks?.addAll(temp);
widget.multipleCheckedChange!(temp);
} else {
widget.singleCheckedChange?.call(value);
}
});
} else {
widget.enableCallBack?.call();
}
}