En este ejemplo voy a mostrar cómo crear un conjunto de opciones checkbox en Flutter en el lenguaje de programación Dart.
Para ello vamos a crear un componente que vamos a llamar en este caso CheckboxGroup. Este elemento o componente, tendrá sus propiedades y eventos para manejar la selección de opciones, y así, poder usarlo en cualquier vista o Widget.
class CheckboxGroup extends StatefulWidget {
final List<String> options;
final ValueChanged<List<String>> onChanged;
CheckboxGroup({required this.options, required this.onChanged});
@override
_CheckboxGroupState createState() => _CheckboxGroupState();
}
class _CheckboxGroupState extends State<CheckboxGroup> {
List<String> _selectedOptions = [];
@override
Widget build(BuildContext context) {
return Column(
children: widget.options.map((String value) {
return CheckboxListTile(
title: Text(value),
value: _selectedOptions.contains(value),
onChanged: (bool? checked) {
setState(() {
if (checked != null && checked) {
_selectedOptions.add(value);
} else {
_selectedOptions.remove(value);
}
widget.onChanged(_selectedOptions);
});
},
);
}).toList(),
);
}
}
Ahora, en la vista MyApp, usaremos este componente CheckboxGroup que acabamos de crear como muestro a continuación.
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Checkbox Ejemplo para DevCodeLight'),
),
body: Center(
child: CheckboxGroup(
options: ['Opción 1', 'Opción 2', 'Opción 3'],
onChanged: (selected) {
print('Selected: $selected');
},
),
),
),
);
}
}
Por último, observamos a continuación el resultado del ejemplo completo.
Espero que les sirva de ayuda. ¡Que tengan un feliz día!

