我已经在互联网上进行了很长的研究,关于这个(我认为是恶作剧)在flutter中使用Material
小部件,任何flutter开发人员都面临No Material widget found.
异常,即使在使用库比蒂诺设计小部件时。
要生成的一个简单示例是
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class Example extends StatelessWidget {
const Example({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return CupertinoPageScaffold(
navigationBar: CupertinoNavigationBar(
middle: Text('Example'),
leading: IconButton(
onPressed: () {},
icon: Icon(
Icons.close,
color: Colors.black54,
),
),
),
child: Center(
child: IconButton(
onPressed: () {},
icon: Icon(
Icons.close,
color: Colors.black54,
),
),
),
);
}
}
navigationBar
和body
IconButton
都无法运作,因此会产生相同的例外状况。
当遇到这个异常时,我总是把它 Package 在一个Material
中来绕过它,但我认为我做错了。IconButton
不是唯一的小部件,我搜索了很多都没有用。
请告诉我,我错过了什么?并提前感谢。
3条答案
按热度按时间0qx6xfy61#
您需要将根Widget Package 在
MaterialApp()
中,以便可以访问Material组件。例如,
bsxbgnwa2#
不确定Cupertino部分,但(afaik)您需要将您的应用程序 Package 在
MaterialApp()
中以访问Material部件和其他方法等。htrmnn0y3#
对于
MaterialApp
,您必须使用IconButton
;对于CupertinoApp
,您必须使用CupertinoButton
,但请使用child
而不是icon