Flutter 无法将参数类型“0”指定给参数类型“小部件”`
我尝试使用外部小部件。我知道,它的担保人在安卓版本工作。但是我在Web版本中添加了它,并得到了一个错误,参数类型“不能分配给参数类型小部件”。这只是简单的代码示例Hello,World,仅此而已。它应该在Web版本下工作吗 主代码继承自Widget-class,其来源明确。我不知道这个错误是什么意思Flutter 无法将参数类型“0”指定给参数类型“小部件”`,flutter,flutter-web,Flutter,Flutter Web,我尝试使用外部小部件。我知道,它的担保人在安卓版本工作。但是我在Web版本中添加了它,并得到了一个错误,参数类型“不能分配给参数类型小部件”。这只是简单的代码示例Hello,World,仅此而已。它应该在Web版本下工作吗 主代码继承自Widget-class,其来源明确。我不知道这个错误是什么意思 import 'package:flutter_web/material.dart'; import 'package:flutter_tagging/flutter_tagging
import 'package:flutter_web/material.dart';
import 'package:flutter_tagging/flutter_tagging.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatelessWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'Hello, World!',
),
SingleChildScrollView(
child: Column(
children: <Widget>[
Padding(
padding: const EdgeInsets.all(8.0),
child:
FlutterTagging(
textFieldDecoration: InputDecoration(
border: OutlineInputBorder(),
hintText: "Tags",
labelText: "Enter tags"),
addButtonWidget: _buildAddButton(),
chipsColor: Colors.pinkAccent,
chipsFontColor: Colors.white,
deleteIcon: Icon(Icons.cancel,color: Colors.white),
chipsPadding: EdgeInsets.all(2.0),
chipsFontSize: 14.0,
chipsSpacing: 5.0,
chipsFontFamily: 'helvetica_neue_light',
suggestionsCallback: (pattern) async {
return await TagSearchService.getSuggestions(pattern);
},
onChanged: (result) {
setState(() {
text = result.toString();
});
},
),
),
SizedBox(
height: 20.0,
),
Center(
child: Text(
'test',
style: TextStyle(color: Colors.pink),
),
)
],
),
),
],
),
), // This trailing comma makes auto-formatting nicer for build methods.
);
}
}
Widget _buildAddButton() {
return Container(
padding: EdgeInsets.all(8.0),
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(20.0)),
color: Colors.pinkAccent,
),
child: Row(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Icon(
Icons.add,
color: Colors.white,
size: 15.0,
),
Text(
"Add New Tag",
style: TextStyle(color: Colors.white, fontSize: 14.0),
),
],
),
);
}
这是因为在flatterweb中,所有的小部件都需要是来自package:flatter_web/material.dart的小部件类的一个子类。而您正在使用的小部件从package:flatter/material.dart扩展了小部件类。由于颤振和颤振web现在是独立的项目,您必须更改源代码以使用package:flatter_web/material.dart而不是package:flatter/material.dart。大多数情况下,只需替换导入语句即可。Flatter 1.9.1+修补程序。1•通道测试版•框架•4天前修订版a1fb3fabec•2019-09-03 18:07:52-0700引擎•修订版cc88fa45db工具•Dart 2.5.0 Flatter医生-好的。谢谢您的回答。我的错误消失了。但是webdev服务和我发现您对颤振有依赖性,颤振web技术预览不支持这种依赖性。有关更多详细信息,请参阅。想想看,这需要等待。不要使用任何颤振包。如果你想在你的应用程序中使用任何flatter软件包,请将其源代码和软件包:flatter/material.dart复制粘贴到package:flatter\u web/material.dart。