Виджет SizeTransition
Виджет SizeTransition принимает sizeFactor и child.
Синтаксис
SizeTransition(sizeFactor: animation, child: child)
Параметры
| Параметр | Описание |
|---|---|
sizeFactor |
Animation доли размера по оси.
|
axis |
Ось раскрытия. |
child |
Содержимое, которое раскрывают. |
Пример
Давайте показать переход:
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) {
return MaterialApp(home: Scaffold(body: Center(child: SizeTransition(sizeFactor: _controller, axis: Axis.horizontal, child: Text('abcde')))));
}
}
void main(){runApp(const Pulse());}
На экране 'abcde' через SizeTransition.
Пример
Давайте второй кадр:
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) {
return MaterialApp(home: Scaffold(body: Center(child: SizeTransition(sizeFactor: _controller, child: Text('12345')))));
}
}
void main(){runApp(const Pulse());}
На экране '12345' через SizeTransition.
Смотрите также
-
класс
AnimationController,
который задаётduration -
класс
Curves,
который задаётcurve -
виджет
AnimatedBuilder,
когда нужен ручнойbuilder -
виджет
MaterialApp,
корень примеров