【发布时间】:2021-01-26 09:10:12
【问题描述】:
通过Interactive viewer 文档,我知道我们可以使用toScene 方法自动滚动到Interactive viewer 中的特定位置。但我尝试了但一切都是徒劳的。如何自动滚动到给定交互式位置的偏移量查看器
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.value = Matrix4.identity()..translate(x, y) -
翻译的矩阵应该是什么。对不起,我是新来的颤振
-
所以如果你只想移动到 (x, )y 位置你有上面的代码
标签: flutter flutter-layout flutter-animation