Tiempo de lectura: 2 minutos
Today we are going to create a custom widget called CustomDropdownButton
, which is used to display a DropdownButton with selectable options.
The widget accepts three parameters:
import 'package:flutter/material.dart';
import '../comun/Option.dart';
class CustomDropdownButton extends StatefulWidget {
final Option selectedOption;
final void Function(Option?) onChanged;
required this.selectedOption,
_CustomDropdownButtonState createState() => _CustomDropdownButtonState();
class _CustomDropdownButtonState extends State {
Widget build(BuildContext context) {
value: widget.selectedOption,
onChanged: widget.onChanged,
(option) => DropdownMenuItem(
child: Text(option.name),
import 'package:flutter/material.dart';
import '../comun/Option.dart';
class CustomDropdownButton extends StatefulWidget {
final Option selectedOption;
final List options;
final void Function(Option?) onChanged;
CustomDropdownButton({
required this.selectedOption,
required this.options,
required this.onChanged,
});
@override
_CustomDropdownButtonState createState() => _CustomDropdownButtonState();
}
class _CustomDropdownButtonState extends State {
@override
Widget build(BuildContext context) {
return Expanded(
child: DropdownButton(
isExpanded: true,
value: widget.selectedOption,
onChanged: widget.onChanged,
items: widget.options
.map<DropdownMenuItem>(
(option) => DropdownMenuItem(
value: option,
child: Text(option.name),
),
)
.toList(),
),
);
}
}
import 'package:flutter/material.dart';
import '../comun/Option.dart';
class CustomDropdownButton extends StatefulWidget {
final Option selectedOption;
final List options;
final void Function(Option?) onChanged;
CustomDropdownButton({
required this.selectedOption,
required this.options,
required this.onChanged,
});
@override
_CustomDropdownButtonState createState() => _CustomDropdownButtonState();
}
class _CustomDropdownButtonState extends State {
@override
Widget build(BuildContext context) {
return Expanded(
child: DropdownButton(
isExpanded: true,
value: widget.selectedOption,
onChanged: widget.onChanged,
items: widget.options
.map<DropdownMenuItem>(
(option) => DropdownMenuItem(
value: option,
child: Text(option.name),
),
)
.toList(),
),
);
}
}
selectedOption
: Represents the currently selected option in the dropdown menu.
options
: Is a list of options to be displayed in the dropdown menu.
onChanged
: Is a function that is called when the selection of the dropdown menu changes.
Widget Usage: To use this widget, simply incorporate it into the widget tree and provide the required parameters as shown below
selectedOption: mySelectedOption,
// Logic to handle the change in the selected option.
// You can update the state or perform other actions here.
CustomDropdownButton(
selectedOption: mySelectedOption,
options: optionsList,
onChanged: (newOption) {
// Logic to handle the change in the selected option.
// You can update the state or perform other actions here.
},
)
CustomDropdownButton(
selectedOption: mySelectedOption,
options: optionsList,
onChanged: (newOption) {
// Logic to handle the change in the selected option.
// You can update the state or perform other actions here.
},
)
Finally, we visualize the result
I hope this helps you and have a great day
Post Views: 3
Related