Класс Tween
Класс Tween<T> задаёт begin и end.
Синтаксис
Tween<double>(begin: 0, end: 100)
Параметры
| Параметр | Описание |
|---|---|
begin |
Начальное значение, когда анимация равна 0. |
end |
Конечное значение, когда анимация равна 1. |
Методы
| Метод | Описание |
|---|---|
animate |
Возвращает AnimationAnimation |
chain |
Оборачивает другой Animatable в цепочку преобразований. |
evaluate |
Возвращает значение T для текущего кадра animation. |
lerp |
Интерполирует между begin и end по доле t. |
transform |
Возвращает значение между begin и end для параметра t. |
Пример
Давайте evaluate на 0.5:
import 'package:flutter/material.dart';
void main() {
var t = Tween(begin: 0.0, end: 10.0);
print(t.transform(0.5));
print('12345');
}
В консоли будет 5.0 и '12345'.
Пример
Давайте animate с контроллером:
import 'package:flutter/material.dart';
class Pulse extends StatefulWidget
{
const Pulse({super.key});
@override
State<Pulse> createState() => _PulseState();
}
class _PulseState extends State<Pulse> with SingleTickerProviderStateMixin
{
late AnimationController _controller;
@override
void initState()
{
super.initState();
_controller = AnimationController(
vsync: this,
duration: Duration(milliseconds: 600),
);
}
@override
void dispose()
{
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
var anim = Tween(begin: 0.0, end: 1.0).animate(_controller);
return MaterialApp(home: Scaffold(body: Center(child: Text('abcde', style: TextStyle(fontSize: 16 + anim.value * 8)))));
}
}
void main() { runApp(const Pulse()); }
На экране 'abcde' меняет размер через Tween.animate.
Смотрите также
-
класс
AnimationController,
который задаёт длительность иvsync -
смесь
SingleTickerProviderStateMixin,
которую добавляют кStateдляvsync -
класс
Tween,
который переводит значениеcontroller.value -
виджет
FadeTransition,
который слушаетAnimation