updateChange method

void updateChange(
  1. int value
)

提供一个方法修改数据,并通知子组件 刷新

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();
  }
}