ZeroButtonGroup.labelsWithIcons constructor

const ZeroButtonGroup.labelsWithIcons({
  1. Key? key,
  2. required List<String>? labels,
  3. required List<IconData>? icons,
  4. required List<bool> selecteds,
  5. ButtonGroupType buttonGroupType = ButtonGroupType.filled,
  6. ZeroSizeType buttonSizeType = ZeroSizeType.medium,
  7. bool? vertical = false,
  8. bool? multipleSelect = false,
  9. ZeroButtonRadiusType buttonRadiusType = ZeroButtonRadiusType.curved,
  10. ZeroButtonGroupStyle? style,
  11. ZeroButtonGroupCallback? onChanged,
})

ButtonGroup having items with both labels and icons alike

Implementation

const ZeroButtonGroup.labelsWithIcons({
  super.key,
  required this.labels,
  required this.icons,
  required this.selecteds,
  this.buttonGroupType = ButtonGroupType.filled,
  this.buttonSizeType = ZeroSizeType.medium,
  this.vertical = false,
  this.multipleSelect = false,
  this.buttonRadiusType = ZeroButtonRadiusType.curved,
  this.style,
  this.onChanged,
})  : buttonItemType = ButtonItemType.labelsAndIcons,
      square = null,
      selectIcon = null,
      withIcon = true,
      assert(icons != null && icons.length >= 2,
          'Labels or icons must contain at least 2 elements'),
      assert(
        icons != null &&
            labels != null &&
            icons.length == labels.length &&
            icons.length == selecteds.length,
        'selectedItems must contain the same number of elements as icons\'s and label\'s',
      );