我一直在尝试使用传感器包实现陀螺仪图像查看器,但是,结果似乎非常滞后。我在YouTube上发现了一个类似的项目,它试图实现类似的目标,但正如您在视频中看到的,动画也非常滞后。
下面的代码只是从事件中输出数据,我注意到数据的更新在更新之间有 50 毫秒的滞后。
有没有办法让动画更平滑或者更快地更新数据?或者这是 Flutter 的限制?
注意:我已经按照其他帖子的建议尝试了 --release 版本,但结果保持不变。
import 'package:sensors/sensors.dart';
class MyGyro extends StatefulWidget {
final Widget child;
MyGyro({this.child});
@override
_MyGyroState createState() => _MyGyroState();
}
class _MyGyroState extends State<MyGyro> {
double gyroX = 0;
double gyroY = 0;
@override
void initState() {
super.initState();
gyroscopeEvents.listen((GyroscopeEvent event) {
setState(() {
gyroX = ((event.x * 100).round() / 100).clamp(-1.0, 1.0) * -1;
gyroY = ((event.y * 100).round() / 100).clamp(-1.0, 1.0);
});
});
}
@override
Widget build(BuildContext context) { …Run Code Online (Sandbox Code Playgroud) 我正在尝试按照 bloc 模式将参数传递给 bloc 事件,我找到了这篇文章,但是我的 dart 文档找不到dispatch(event) 方法。
我如何将参数传递给这样的东西
main.dart
这有效
_counterBloc.add(Counter.increment);
Run Code Online (Sandbox Code Playgroud)
但这不
_counterBloc.add(Counter.increment(3));
Run Code Online (Sandbox Code Playgroud)
bloc.dart
import 'package:bloc/bloc.dart';
enum CounterEvents { increment }
class CounterBloc extends Bloc<CounterEvents, int> {
@override
int get initialState => 0;
@override
Stream<int> mapEventToState(CounterEvents event) async* {
switch (event) {
case CounterEvents.increment:
print(event);
yield state + 1;
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)