无法推断类型参数“T”。
试图推断“T”的“动态”,但这不起作用:
参数“onChanged”声明为“void Function(T?)?” 但参数是“void Function(Object?)”。
类型“动态”是从以下内容推断出来的:
参数“值”声明为“T?” 但参数是“字符串”。参数“items”声明为“List<DropdownMenuItem>?” 但参数是“List<DropdownMenuItem>”。
考虑将显式类型参数传递给泛型。
我有 DropDownformfield 显示上述问题代码是
SizedBox(
width: deviceWidth * .9,
height: deviceHeight * 0.15,
child: DropdownButtonFormField(
value: _dropDownValue,
dropdownColor: Colors.blueAccent,
iconSize: deviceWidth * .05,
icon: Icon(
Icons.arrow_drop_down_circle,
color: Colors.white,
),
style: TextStyle(
color: Colors.black,
fontFamily: 'Constantia',
fontSize: 18.0,
),
autovalidateMode: AutovalidateMode.always,
decoration: InputDecoration(
enabled: true,
border: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.red,
width: 2,
style: BorderStyle.solid,
),
),
),
onChanged: (value) {
setState(() {
_dropDownValue = value.toString();
print(_dropDownValue);
});
},
items: <DropdownMenuItem<dynamic>>[
menuItem('none'),
menuItem('10'),
menuItem('20'),
menuItem('30'),
menuItem('40'),
menuItem('50'),
menuItem('60'),
menuItem('70'),
menuItem('80'),
menuItem('90'),
menuItem('100'),
],
),
),
Run Code Online (Sandbox Code Playgroud)
和小部件作为
DropdownMenuItem menuItem(String val) {
final deviceWidth = MediaQuery.of(context).size.width;
return DropdownMenuItem<String>(
value: val,
child: Container(
width: deviceWidth * 0.6,
child: Text(
val,
style: TextStyle(
fontFamily: 'Constantia',
fontSize: 18.0,
color: Colors.white,
),
),
),
);
Run Code Online (Sandbox Code Playgroud)
该代码工作正常,但 Android Studio 将其显示为问题。
最好提供泛型类型以避免代码中出现任何错误或错误。因为您在函数中提到了 DropDownMenuItem,所以menuItemandroid studio 会向您发出警告,表明您已在此处提供了动态。
items: <DropdownMenuItem<dynamic>>[ // ==> change dynamic to String to solve that warning
menuItem('none'),
menuItem('10'),
menuItem('20'),
menuItem('30'),
menuItem('40'),
menuItem('50'),
menuItem('60'),
menuItem('70'),
menuItem('80'),
menuItem('90'),
menuItem('100'),
],
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5473 次 |
| 最近记录: |