«Ужасное трепетание», по-видимому, представляет собой комбинацию двух терминов: «Stateful» и «Flutter». Во Flutter «Stateful» относится к типу виджета, который может сохранять состояние и обновлять свой внешний вид в ответ на изменения. Если мы предполагаем, что вы ищете примеры виджетов с сохранением состояния во Flutter, я могу предоставить вам несколько примеров кода:
Пример 1: Приложение-счетчик
import 'package:flutter/material.dart';
class CounterApp extends StatefulWidget {
@override
_CounterAppState createState() => _CounterAppState();
}
class _CounterAppState extends State<CounterApp> {
int _counter = 0;
void _incrementCounter() {
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Counter App'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'Counter:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headline4,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: Icon(Icons.add),
),
);
}
}
Пример 2. Проверка формы
import 'package:flutter/material.dart';
class FormValidationApp extends StatefulWidget {
@override
_FormValidationAppState createState() => _FormValidationAppState();
}
class _FormValidationAppState extends State<FormValidationApp> {
final _formKey = GlobalKey<FormState>();
String _name;
void _submitForm() {
if (_formKey.currentState.validate()) {
_formKey.currentState.save();
print('Name: $_name');
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Form Validation'),
),
body: Padding(
padding: EdgeInsets.all(20.0),
child: Form(
key: _formKey,
child: Column(
children: <Widget>[
TextFormField(
decoration: InputDecoration(labelText: 'Name'),
validator: (value) {
if (value.isEmpty) {
return 'Please enter your name';
}
return null;
},
onSaved: (value) {
_name = value;
},
),
SizedBox(height: 20.0),
RaisedButton(
onPressed: _submitForm,
child: Text('Submit'),
),
],
),
),
),
);
}
}
Это всего лишь два примера виджетов с сохранением состояния во Flutter. Существует гораздо больше возможностей в зависимости от ваших конкретных требований. Не забудьте импортировать необходимые пакеты Flutter для запуска этих примеров.