当手机旋转时,由于流值的突然变化,Flutter指南针的旋转滞后



Flutter指南针在带有transform.rotate的真实设备上提供了非常滞后的性能。有没有更好的动画来平滑指南针小部件的旋转。

我的代码如下

class _AnimationRotationState extends State<AnimationRotation>
with SingleTickerProviderStateMixin {
final double angleMinus = pi / 4.1;
double _changing = 0.0;
Stream<QiblahDirection> qiblahStream = FlutterQiblah.qiblahStream;
@override
void initState() {
super.initState();
_qiblahStream();
}

void _qiblahStream() {
qiblahStream.listen((event) {
setState(() {
var value = event.qiblah;
_changing = -2 * pi * (value / 360);
});
});
}

@override
void dispose() {
// qiblahStream.
super.dispose();
}
@override
Widget build(BuildContext context) {   
return Stack(clipBehavior: Clip.hardEdge, children: [     
Transform.rotate(
angle: _changing,
child: Transform.rotate(
angle: 0.00,
child: Image.asset("assets/compass.png"),
),
),

这是因为您使用的是setState方式,您可以在Transform小部件上方的动画部分上方使用AnimatedBuilder并传递动画控制器,因此当转发动画控制器时,只会重建需要动画的部分。

最新更新