In Flutter, I can build a Dropdown with DropdownMenuItems, like this:
The DropdownMenuItems I add are always wider than the dropdown itself:
How do you
isExpanded: true
will stretch the width to full screen. But if you want a customise drop-down. Here is my customdropdown.dart
import 'package:flutter/material.dart';
class CustomDropDown extends StatelessWidget {
final value;
final List itemsList;
final Color dropdownColor;
final Function(dynamic value) onChanged;
const CustomDropDown({
@required this.value,
@required this.itemsList,
this.dropdownColor,
@required this.onChanged,
Key key,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsets.only(left: 20, top: 3, bottom: 3, right: 20),
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
color: Colors.white,
),
child: DropdownButtonHideUnderline(
child: Padding(
padding: const EdgeInsets.only(left: 14.0, right: 14),
child: DropdownButton(
isExpanded: true,
dropdownColor: dropdownColor,
value: value,
items: itemsList
.map((String item) => DropdownMenuItem(
value: item,
child: Text(item),
))
.toList(),
onChanged: (value) => onChanged(value),
),
),
),
),
);
}
}
Now you can call it like this.
CustomDropDown(
value: selectedValue,
itemsList: ['Music', 'Photographer'],
onChanged: (value) {
setState(() {
selectedValue = value;
});
},
),