Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
846 of 1024 menu
◀ ▶

Виджет 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' внутри виджета.

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить