如何解决在颤动中自动滚动到交互式查看器中的偏移量
通过 Interactive viewer
文档,我开始知道我们可以使用 Interactive viewer
方法自动滚动到 toScene
中的特定位置。但我尝试过但一切都白费了。如何自动滚动到给定交互式查看器中的位置的偏移
import 'dart:async';
import 'package:Flutter/material.dart';
import 'package:Flutter/scheduler.dart';
class MyPlanet extends StatefulWidget {
@override
_MyPlanetState createState() => _MyPlanetState();
}
class _MyPlanetState extends State<MyPlanet> {
final TransformationController transformationController =
TransformationController();
@override
void initState() {
SchedulerBinding.instance.addPostFrameCallback((_) async {
Timer(Duration(seconds: 5),() {
setState(() {
transformationController.value = Matrix4.identity()
..translate(800,0.0);
transformationController.toScene(Offset(800,0.0));
});
});
});
super.initState();
}
@override
Widget build(BuildContext context) {
return InteractiveViewer(
minScale: 0.5,maxScale: 1,constrained: false,transformationController: transformationController,child: Container(
height: 896,width: 2000,child: Image.asset(
'assets/images/rain_forest.png',fit: BoxFit.cover,height: double.infinity,),);
}
}
解决方法
谢谢@pskink。
可以使用 TransformationController
和 matrix4
@override
void initState() {
TransformationController transformationController =
TransformationController();
transformationController.value = Matrix4.identity()
..translate(-200.0,0.0); // translate(x,y);
}
,
试试
@override
void initState() {
SchedulerBinding.instance.addPostFrameCallback((_) async {
transformationController.toScene(Offset(100,0));
});
super.initState();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。