Я пытаюсь анимировать два квадратных контейнера, чтобы при их нажатии они масштабировались. Я вижу все эти примеры классов преобразования онлайн, которые показывают анимацию виджета, однако, когда я использую класс преобразования, масштаб просто переходит от своего начального значения к его окончательному значению.
Моя конечная цель состоит в том, чтобы анимировать контейнер, чтобы он «подпрыгивал» каждый раз, когда он нажимается, как то, что вы можете делать с bounce.js в веб-разработке. Чтобы понять, что я имею в виду, вы можете перейти к http://bouncejs.com,, нажмите «Выбрать предустановку» в верхнем левом углу, выберите желе из выпадающего меню и нажмите «Воспроизвести анимацию».
Можно ли это сделать с помощью класса преобразования?
Вот мой код:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
_MyHomePageState createState() => _MyHomePageState();
}
var squareScaleA = 0.5;
var squareScaleB = 0.5;
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Bounce Example"),
),
body: Stack(
children: <Widget>[
Container(
width: 300.0,
height: 150.0,
color: Colors.yellowAccent,
),
Column(
children: <Widget>[
Row(
children: <Widget>[
GestureDetector(
onTap: () {
setState(() {
squareScaleA = 1.0;
});
},
child: Transform.scale(
scale: squareScaleA,
child: Container(
width: 150.0,
height: 150.0,
color: Colors.green,
),
),
),
GestureDetector(
onTap: () {
setState(() {
squareScaleB = 1.0;
});
},
child: Transform.scale(
scale: squareScaleB,
child: Container(
width: 150.0,
height: 150.0,
color: Colors.blue,
),
),
),
],
),
],
),
],
),
);
}
}
Заранее спасибо за любую помощь!