Мое приложение использует набор Card()
s внутри PageView()
, каждая карта имеет несколько строк текста. Пользователь дает ввод для каждой строки (например, изменяя текст и т. Д. c.). Я хочу сохранить этот ввод некоторое время.
Вот так выглядит мой код в настоящее время, абстрактно говоря:
class MyCard extends StatefulWidget {
final List<Widget> _myLines = [];
@override
State<StatefulWidget> createState() => MyCardState();
}
class MyCardState extends State<MyCard> {
...
@override
Widget build(BuildContext context) {
...
widget._myLines.add(ChangeNotifierProvider(
create: (context) => MyLineModel(context, lineText),
child: RecipeLine())
...
}
}
Это не работает хорошо: как только я проведу Влево / вправо через PageView
на другие карты и затем проведите назад, Card
строится снова. Это также приводит к перестроению MyLineModel
, что, в свою очередь, стирает весь ввод пользователя.
Как мне избежать перестроения MyLineModel
и сохранить ввод пользователя?