我创建了一个图像列表,我想在GridView的卡片布局中显示它们。我还创建了一个具有颜色Color backgroundColor和AssetImage assetImage的构造函数。该构造函数位于另一个类Home()中,因此在我的材质应用中,可以在“ home”属性中对其进行调用。但是Home()要求2个参数,但我无法解决。我该怎么办?是的,我正在构建一个多合一的网站应用程序,因此代码中也包含了webView。
void main() => runApp(
MaterialApp(
routes: {
"/webview": (_) => WebviewScaffold(
withJavascript: true,
withLocalStorage: true,
url: 'https://www.google.com/',
appBar: AppBar(
title: Text('Browser'),
),
),
},
home: Home(),
),
);
class Home extends StatefulWidget {
const Home(this.backgroundColor, this.assetImage);
final Color backgroundColor;
final AssetImage assetImage;
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
final webView = FlutterWebviewPlugin();
@override
void initState() {
super.initState();
webView.close();
}
@override
Widget build(BuildContext context) {
var gridView = new GridView.builder(
itemCount: 24,
gridDelegate:
new SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 3),
itemBuilder: (BuildContext context, int index) {
return new GestureDetector(
child: Container(
padding: EdgeInsets.all(6),
child: Card(
color: widget.backgroundColor,
child: new InkWell(
onTap: () {},
child: Center(
child: Image(
image: widget.assetImage,
),
),
),
),
),
onTap: () {},
);
});
return Scaffold(
appBar: AppBar(
title: Text('ANytHiNg'),
backgroundColor: Colors.green,
),
body: gridView,
);
}
}
答案 0 :(得分:0)
您可能会发现this有用。
您可以在其中将这样的列表传递给构造函数,
void main() {
runApp(MyApp(
items: List<String>.generate(10000, (i) => "Item $i"),
));
}
在此之后获得此列表
MyApp({Key key, @required this.items}) : super(key: key);