Класс Curves
Класс Curves отдаёт константы типа
Curve
для CurvedAnimation
и animateTo.
Синтаксис
Curves.easeIn
Значения
| Значение | Описание |
|---|---|
linear |
Равномерный ход. |
ease |
Плавный старт и финиш. |
easeIn |
Медленный старт. |
easeOut |
Медленный финиш. |
easeInOut |
Медленно на краях. |
fastOutSlowIn |
Material стандарт. |
bounceIn |
Отскок в начале. |
bounceOut |
Отскок в конце. |
elasticIn |
Упругий вход. |
decelerate |
Замедление к концу. |
Пример
Давайте зададим Curves.easeIn:
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 curved = CurvedAnimation(
parent: _controller,
curve: Curves.easeIn,
);
return MaterialApp(
home: Scaffold(
body: Center(
child: FadeTransition(
opacity: curved,
child: Text('abcde'),
),
),
),
);
}
}
void main()
{
runApp(const Pulse());
}
На экране 'abcde' с easeIn.
Пример
Давайте возьмём bounceOut:
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 curved = CurvedAnimation(
parent: _controller,
curve: Curves.bounceOut,
);
return MaterialApp(
home: Scaffold(
body: Center(
child: FadeTransition(
opacity: curved,
child: Text('12345'),
),
),
),
);
}
}
void main()
{
runApp(const Pulse());
}
На экране '12345' с bounceOut.
Смотрите также
-
класс
AnimationController,
который задаёт длительность иvsync -
смесь
SingleTickerProviderStateMixin,
которую добавляют кStateдляvsync -
класс
Tween,
который переводит значениеcontroller.value -
виджет
FadeTransition,
который слушаетAnimation