Вот несколько методов, обычно используемых во Flutter, а также примеры кода:
-
setState():
Этот метод используется для обновления состояния StatefulWidget и запуска перестройки пользовательского интерфейса.class MyWidget extends StatefulWidget { @override _MyWidgetState createState() => _MyWidgetState(); } class _MyWidgetState extends State<MyWidget> { int _counter = 0; void _incrementCounter() { setState(() { _counter++; }); } @override Widget build(BuildContext context) { return Column( children: [ Text('Counter: $_counter'), RaisedButton( onPressed: _incrementCounter, child: Text('Increment'), ), ], ); } } -
initState():
Этот метод вызывается, когда StatefulWidget впервые вставляется в дерево виджетов. Обычно он используется для инициализации переменных.class MyWidget extends StatefulWidget { @override _MyWidgetState createState() => _MyWidgetState(); } class _MyWidgetState extends State<MyWidget> { int _counter = 0; @override void initState() { super.initState(); _counter = 42; // Initializing the counter to 42 } @override Widget build(BuildContext context) { return Text('Counter: $_counter'); } } -
dispose():
Этот метод вызывается, когда StatefulWidget удаляется из дерева виджетов. Обычно используется для очистки ресурсов.class MyWidget extends StatefulWidget { @override _MyWidgetState createState() => _MyWidgetState(); } class _MyWidgetState extends State<MyWidget> { Timer _timer; @override void initState() { super.initState(); _timer = Timer.periodic(Duration(seconds: 1), (_) { print('Tick'); }); } @override void dispose() { _timer.cancel(); // Cancel the timer when the widget is disposed super.dispose(); } @override Widget build(BuildContext context) { return Container(); } } -
didChangeDependities():
Этот метод вызывается, когда изменяются зависимости StatefulWidget. Он обычно используется для асинхронных операций, таких как получение данных из API.class MyWidget extends StatefulWidget { @override _MyWidgetState createState() => _MyWidgetState(); } class _MyWidgetState extends State<MyWidget> { String _data; @override void didChangeDependencies() { super.didChangeDependencies(); fetchData(); } Future<void> fetchData() async { final response = await http.get('https://api.example.com/data'); setState(() { _data = response.body; }); } @override Widget build(BuildContext context) { return Text('Data: $_data'); } }
Это всего лишь несколько примеров методов, используемых во Flutter. Доступно множество других методов в зависимости от конкретных случаев использования и требований вашего приложения.