如何解决我正在尝试将var放入dropdownlist
这是我的代码 我想将一个var放在Flutter的下拉列表中
new DropdownButton<String>(
// value: selectedPurpose,hint: new Text(
'Select visitng purpose',style: TextStyle(fontFamily: "Gotham"),),items: widget.size
.map((purposeTemp) {
return new DropdownMenuItem<String>(
value: purposeTemp,child: new Text(
purposeTemp,);
}).toList(),onChanged: (String purpose) {
setState(() {
ss = purpose.toString();
});
},// value: selectedPurpose,)
am出现此错误
type 'List<dynamic>' is not a subtype of type 'List<DropdownMenuItem<String>>'
我该怎么办
解决方法
您可以在下面复制粘贴运行完整代码
您可以使用widget.size.map<DropdownMenuItem<String>>((String purposeTemp)
代码段
items: widget.size.map<DropdownMenuItem<String>>((String purposeTemp) {
return DropdownMenuItem<String>(
value: purposeTemp,child: Text(purposeTemp,style: TextStyle(fontFamily: "Gotham")),);
}).toList(),
工作演示
完整代码
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
/// This Widget is the main application widget.
class MyApp extends StatelessWidget {
static const String _title = 'Flutter Code Sample';
@override
Widget build(BuildContext context) {
return MaterialApp(
title: _title,home: Scaffold(
appBar: AppBar(title: const Text(_title)),body: Center(
child: MyStatefulWidget(
size: ['One','Two','Free','Four'],),);
}
}
class MyStatefulWidget extends StatefulWidget {
List<String> size;
MyStatefulWidget({Key key,this.size}) : super(key: key);
@override
_MyStatefulWidgetState createState() => _MyStatefulWidgetState();
}
class _MyStatefulWidgetState extends State<MyStatefulWidget> {
String selectedPurpose;
@override
Widget build(BuildContext context) {
return DropdownButton<String>(
value: selectedPurpose,style: TextStyle(color: Colors.deepPurple),hint: Text(
'Select visitng purpose',style: TextStyle(fontFamily: "Gotham"),onChanged: (String Value) {
setState(() {
selectedPurpose = Value;
});
},items: widget.size.map<DropdownMenuItem<String>>((String purposeTemp) {
return DropdownMenuItem<String>(
value: purposeTemp,);
}).toList(),);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。