Flutter中如何给AppBar添加按钮?按谷歌官方教程操作出现类型不匹配报错
问题原因
你把actions参数配置在了错误的组件上:
MaterialApp自带的actions属性是用于处理全局快捷键意图的,接收的参数类型为Map<Type, Action<Intent>>,和你要实现的顶部导航栏操作按钮功能无关- 你查阅的
List<Widget>类型的actions参数,实际是AppBar组件的属性,专门用于配置导航栏右侧的操作按钮列表
修复方案
- 先删除
MaterialApp中定义的actions配置:
class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return const MaterialApp( title: 'Startup Name Generator', // 删掉此处的actions配置 home: RandomWords(), ); } }
- 将操作按钮配置放到
RandomWords页面内Scaffold的appBar属性下:
class _RandomWordsState extends State<RandomWords> { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('Startup Name Generator'), // AppBar的actions才接收Widget列表类型的参数 actions: <Widget>[ IconButton( icon: const Icon(Icons.shopping_cart), tooltip: 'Open shopping cart', onPressed: () { // handle the press }, ), ], ), // 此处保留你原有的RandomWords页面业务逻辑 ); } }
内容的提问来源于stack exchange,提问作者Stamatis Kourpas
相关产品推荐
相关产品推荐

