【发布时间】:2022-01-16 06:50:18
【问题描述】:
我想为下拉菜单提供一个默认值 (final province)。
但我不知道该怎么做。
class ChooseAddress extends StatefulWidget {
final province;
const ChooseAddress({Key? key,required this.provincee}) : super(key: key);
@override
_ChooseAddressState createState() => _ChooseAddressState();
}
class _ChooseAddressState extends State<ChooseAddress> {
ProvinceModel? _value;
Widget Province(double pageHeight, double pageWidth){
return Container(
height: 60,
width: pageWidth,
padding: EdgeInsets.symmetric(horizontal: pageWidth/20),
child: Directionality(
textDirection: TextDirection.rtl,
child: DropdownButtonHideUnderline(
child: DropdownButton(
menuMaxHeight: pageHeight/2,
elevation: 2,
value: _value,
items: _items.map((item){
return DropdownMenuItem(
alignment: Alignment.centerRight,
child: Text(item.name),
value: item,);
}).toList(),
onChanged: (value) {
setState(() {
_value = value as ProvinceModel;
});
},
hint: AutoSizeText(
"choose province",
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: pageWidth / 25),
),
),
),
)
);
}
}
注意final province 可以为空,所以我需要处理它。
我的省模式也是:
class ProvinceModel{
late String name;
late int id;
ProvinceModel(this.name,this.id);
}
final province 就是 ProvinceModel 的String name
【问题讨论】:
-
“我想给一个默认值” - 然后将默认值分配给
_value- 现在是null -
@pskink 我喜欢这样:
value: widget.province ?? _value as ProvinceModel ,但它不起作用并显示错误
标签: android flutter dart drop-down-menu