RadioListTile<T> constructor

const RadioListTile<T>({
  1. Key? key,
  2. required T value,
  3. required T? groupValue,
  4. required ValueChanged<T?>? onChanged,
  5. MouseCursor? mouseCursor,
  6. bool toggleable = false,
  7. Color? activeColor,
  8. MaterialStateProperty<Color?>? fillColor,
  9. Color? hoverColor,
  10. MaterialStateProperty<Color?>? overlayColor,
  11. double? splashRadius,
  12. MaterialTapTargetSize? materialTapTargetSize,
  13. Widget? title,
  14. Widget? subtitle,
  15. bool isThreeLine = false,
  16. bool? dense,
  17. Widget? secondary,
  18. bool selected = false,
  19. ListTileControlAffinity controlAffinity = ListTileControlAffinity.platform,
  20. bool autofocus = false,
  21. EdgeInsetsGeometry? contentPadding,
  22. ShapeBorder? shape,
  23. Color? tileColor,
  24. Color? selectedTileColor,
  25. VisualDensity? visualDensity,
  26. FocusNode? focusNode,
  27. ValueChanged<bool>? onFocusChange,
  28. bool? enableFeedback,
})

Creates a combination of a list tile and a radio button.

The radio tile itself does not maintain any state. Instead, when the radio button is selected, the widget calls the onChanged callback. Most widgets that use a radio button will listen for the onChanged callback and rebuild the radio tile with a new groupValue to update the visual appearance of the radio button.

The following arguments are required:

  • value and groupValue together determine whether the radio button is selected.
  • onChanged is called when the user selects this radio button.

Implementation

const RadioListTile({
  super.key,
  required this.value,
  required this.groupValue,
  required this.onChanged,
  this.mouseCursor,
  this.toggleable = false,
  this.activeColor,
  this.fillColor,
  this.hoverColor,
  this.overlayColor,
  this.splashRadius,
  this.materialTapTargetSize,
  this.title,
  this.subtitle,
  this.isThreeLine = false,
  this.dense,
  this.secondary,
  this.selected = false,
  this.controlAffinity = ListTileControlAffinity.platform,
  this.autofocus = false,
  this.contentPadding,
  this.shape,
  this.tileColor,
  this.selectedTileColor,
  this.visualDensity,
  this.focusNode,
  this.onFocusChange,
  this.enableFeedback,
}) : _radioType = _RadioType.material,
     useCupertinoCheckmarkStyle = false,
     assert(!isThreeLine || subtitle != null);