Я использую TabBarView с двумя вкладками, каждая из которых отображает виджет с сохранением состояния - назовем их Основным виджетом и Виджетом конфигурации.
Виджет конфигурации служит в качестве 'раздел конфигурации 'для основного виджета - я использую его для установки таких вещей, как цвет фона и переменная URL-адреса в основном виджете, который используется для получения данных из веб-службы.
Главный виджет имеет ListView, который заполняется этим веб-сервисом.Я использую шаблон Bloc для отправки событий от одного виджета к другому, и именно так виджет конфигурации отправляет значение URL в главный виджет - событие вызывается, что любезно предоставлено блокомстановится объектом 'состояния' с новым URL-адресом, который Main Widget может прочитать в своем конструкторе и использовать для создания ListView.
Прямо сейчас я использую механизм wantKeepAlive в MainВиджет, позволяющий избежать повторного заполнения ListView, если я не изменил URL в виджете конфигурации - если я этого не сделаю, основной виджет перестраивается каждый раз, когда я возвращаюсь на его вкладку, даже если я ничего не изменил в виджете конфигурации,
Что я хочу сделать, это установить это значение выборочно, чтобы при изменении URL-адреса в конфигурации обновлять значение wantKeepAlive
до false
, чтобы ListView перестраивал с новым URL.Но когда сборка завершена, установите значение wantKeepAlive
обратно на true
, чтобы перестройка не производилась до следующего изменения URL.
Существует ли метод жизненного цикла, который я могу вызвать, когда метод build()
завершено, где я могу установить параметр wantKeepAlive
?Я не думаю, что делать это в самом методе сборки будет работать.Открыты для предложений, и спасибо.