Виджет AnimatedDefaultTextStyle
Виджет AnimatedDefaultTextStyle анимирует изменения параметров при setState.
Синтаксис
AnimatedDefaultTextStyle(
duration: duration,
child: child,
)
Параметры
| Параметр | Описание |
|---|---|
duration |
Параметр AnimatedDefaultTextStyle.
|
style |
Параметр AnimatedDefaultTextStyle.
|
curve |
Параметр AnimatedDefaultTextStyle.
|
child |
Параметр AnimatedDefaultTextStyle.
|
Пример
Давайте сменим параметры по кнопке:
import 'package:flutter/material.dart';
class Demo extends StatefulWidget {
const Demo({super.key});
@override
State<Demo> createState() => _DemoState();
}
class _DemoState extends State<Demo> {
bool big = false;
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
AnimatedDefaultTextStyle(duration: Duration(milliseconds:400), style: TextStyle(fontSize: big?28:16,color:Colors.black), child: Text('abcde')),
ElevatedButton(
onPressed: () => setState(() => big = !big),
child: Text('toggle'),
),
],
),
),
),
);
}
}
void main() {
runApp(const Demo());
}
На экране AnimatedDefaultTextStyle плавно доедет до новых значений, текст 'abcde' останется внутри.
Пример
Давайте повторим переход для второго состояния:
import 'package:flutter/material.dart';
class Demo extends StatefulWidget {
const Demo({super.key});
@override
State<Demo> createState() => _DemoState();
}
class _DemoState extends State<Demo> {
bool big = false;
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
AnimatedDefaultTextStyle(duration: Duration(milliseconds:400), style: TextStyle(fontSize: big?24:14,color:Colors.indigo), child: Text('12345')),
ElevatedButton(
onPressed: () => setState(() => big = !big),
child: Text('toggle'),
),
],
),
),
),
);
}
}
void main() {
runApp(const Demo());
}
На экране после toggle снова сработает AnimatedDefaultTextStyle, подпись '12345' внутри виджета.
Смотрите также
-
класс
AnimationController,
который задаётduration -
класс
Curves,
который задаётcurve -
виджет
AnimatedBuilder,
когда нужен ручнойbuilder -
виджет
MaterialApp,
корень примеров