Выбранный элемент моего DropDownButtonFormField отличается от тех, что в списке элементов.
Вот что я пытаюсь сделать
class CurrencyDropDown extends StatefulWidget {
const CurrencyDropDown({
Key key,
}) : super(key: key);
@override
_CurrencyDropDownState createState() => _CurrencyDropDownState();
}
class _CurrencyDropDownState extends State<CurrencyDropDown> {
String selected = "EUR";
@override
Widget build(BuildContext context) {
return DropdownButtonFormField<String>(
value: selected,
hint: new Text("Select your currency...", textAlign: TextAlign.center),
items: ["USD", "EUR", "CHF"]
.map((label) => DropdownMenuItem(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
Image.asset(
'icons/currency/${label.toLowerCase()}.png',
package: 'currency_icons',
width: 30,
),
Text(label),
],
),
value: label,
))
.toList(),
onChanged: (value) {
setState(() => selected = value);
},
);
}
}
и отображать виджет вот так
return SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
SizedBox(
height: 30,
width: 200,
child: CurrencyDropDown(),
),
А вот как это выглядит при выборе
и отображение выбора.
Мне бы хотелось, чтобы выбранное значение имело тот же экран, что и в раскрывающемся списке, с хорошим интервалом и выравниванием.