我是flushbar小部件的新手。在小部件上的一些文章和视频之后,我构建了一个简单的代码示例,导致以下编译器错误。 https://pub.dev/packages/flushbar
大多数示例都依赖于 onPressed 点击事件。在我的情况下,我需要在显示flushbar消息之前进行一些处理。
我尝试了两个版本:flushbar: ^1.10.0 flushbar: ^1.9.1
您能否建议使用下面的代码运行什么?
这是编译器错误:
运行 Gradle 任务 'assembleDebug'... 编译器消息:/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/flushbar-1.10.0/lib/flushbar_route.dart:303:8:错误:方法“FlushbarRoute.install”的位置参数比覆盖方法“OverlayRoute.install”的位置参数少。void install() { ^ /C:/src/flutter/packages/flutter/lib/src/widgets/routes.dart:41:8: 上下文:这是被覆盖的方法(“安装”)。void install(OverlayEntry insertPoint) { ^ /C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/flushbar-1.10.0/lib/flushbar_route.dart:311:18: 错误:位置太少参数:需要 1,给定 0。超级安装();^ 目标 kernel_snapshot 失败:异常:快照创建期间出错:空构建失败。
FAILURE:构建失败并出现异常。
其中:脚本 'C:\src\flutter\packages\flutter_tools\gradle\flutter.gradle' 行:780
出了什么问题:任务“:app:compileFlutterBuildDebug”执行失败。
Process 'command 'C:\src\flutter\bin\flutter.bat'' 以非零退出值 1 结束
这是我的示例代码。语法没有错误,但编译失败。
import 'package:flutter/material.dart';
import 'package:flushbar/flushbar.dart';
class MyHomePage extends StatefulWidget {
MyHomePage();
@override
State<StatefulWidget> createState() {
return _MyHomePage();
}
}
class _MyHomePage extends State<MyHomePage> {
int _selectedIndex = 2;
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Flushbar')),
body: Center(
child:
BottomNavigationBar(
items: <BottomNavigationBarItem>[
BottomNavigationBarItem(
icon: Icon(Icons.today),
title: Text('Today'), // Today button.
),
BottomNavigationBarItem(
icon: Icon(Icons.business ),
title: Text('Activities'), // Activities.
),
BottomNavigationBarItem(
icon: Icon(Icons.save),
title: Text('Finish'), // Finish
),
],
currentIndex: _selectedIndex,
selectedItemColor: Colors.amber[800],
onTap: _onItemTapped,
)
),
);
}
void _onItemTapped(int index) {
setState(() {
switch (index) {
case 0: // Today selected.
// todayButtonPressed();
break;
case 1: // Activity selected.
// activityButtonPressed();
break;
case 2: // Finish selected.
finishButtonPressed();
break;
}
});
}
void finishButtonPressed() async {
// Processing record.
// .....
// ....
displayFlushBar(context);
}
void displayFlushBar(BuildContext context) {
Flushbar(
title: 'Action',
message: 'Is prohibited',
icon: Icon(
Icons.info_outline,
size: 28,
color: Colors.blue.shade300,
),
leftBarIndicatorColor: Colors.blue.shade300,
duration: Duration(seconds: 3),
)..show(context);
}
}