Более глубокое понимание: Stateful виджет всегда перестраивается, хотя я нахожусь в другом представлении?
Проблема: GroupsOverview (который использует Futurebuilder - код очень длинный и здесь не отображается), похоже, продолжает перестраиваться при переходе через другие представления (а также "подпредставления") в приложении, что приводит к слишком большому количеству операций Algolia. Я думаю, что это проблема, когда дерево дыр перестраивается, но я понятия не имею об этом. Мысль об интеграции, например, модель Scope.
У меня есть серьезная проблема, когда заканчивается мое общее понимание как начинающего флаттера. У меня есть класс "GroupsOverview", который (для каждой перезагрузки) показывает группы на основе моего текущего местоположения с живыми данными из веб-службы (Algolia). Это виджет с состоянием, так как текущее местоположение загружается через initState. Представление представляет собой вкладку в представлении с вкладками, которое опять же с состоянием. Keepalive, кажется, не работает. Итак, как я могу управлять тем, что виджет с сохранением состояния GroupsOverview перестраивает только при его просмотре (а не при нажатии на другие представления в приложении)?
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () => Future.value(false),
child: new Scaffold(
appBar: AppBar(
leading: Container(),
/*title: Text('Chat.Here', style: TextStyle(color: Colors.white),),
leading: Container(),
backgroundColor: Colors.orange[600],
*/
flexibleSpace: SafeArea(
child: new TabBar(indicatorWeight: 4.0,indicatorColor: Colors.white, controller: controller, tabs: <Tab>[
new Tab(
text: 'Gruppen',
icon: Icon(Icons.group),
),
new Tab(
text: 'Chats',
icon: Icon(Icons.chat_bubble),
),
new Tab(
text: 'Einstellungen',
icon: Icon(Icons.settings),
)
]))),
body: new TabBarView(controller: controller, children: <Widget>[
new first.GroupsOverview(),
new second.ChatsOverview(),
new third.Settings()
])),
);
}