Size: a a a

Dart & Flutter по-русски

2021 April 10

I

Ivan in Dart & Flutter по-русски
Navigator.push(
         context,
         MaterialPageRoute(
             builder: (context) => CallScreenWidget(helper, call))).then((value) => setState((){}));
источник

KB

Kirill Bubochkin in Dart & Flutter по-русски
можно, когда вы делаете push, Flutter возвращает Future. Это Future завершается, когда вы на этой новой странице сделали pop. Соответственно, если надо сделать что-то после завершения страницы, можно либо использовать await Navigator.push(…), либо, если, например, сигнатуру менять нельзя и не получится сделать функцию асинхронной, можно что-нибудь типа Navigator.push(…).then((_) => …)
источник

p

prz in Dart & Flutter по-русски
попробую иначе обрисовать

я с главной страницы открываю страницу с просмотром видео.
прилетает пуш, который на главной странице вызывается.
открывается поверх страницы с видео - вызываемая страница.
при этом страница с видео так и продолжает на заднем фоне работать и видео крутится.
в идеале - мне бы при вызове 3-й страницы, убить просто вторую, вместе с видео
источник

p

prz in Dart & Flutter по-русски
в этом случае он обновит главную страницу,как я понимаю
источник

I

Ivan in Dart & Flutter по-русски
ну у тебя изначально вопрос стоял как обновить предыдущую страницу)
источник

p

prz in Dart & Flutter по-русски
ну правильно.
главная -> страница с видео -> (push с первой) открывается 3-я страница
для 3-й страницы предыдущей является страница с видео,но т.к вызов 3-й происходит с главной,то и обновляться будет первая
источник

p

prz in Dart & Flutter по-русски
ооооооооййй лес какой
источник

KB

Kirill Bubochkin in Dart & Flutter по-русски
Можно попробовать что-нибудь типа Navigator.pushNamedAndRemoveUntil(context, 'routeName', ModalRoute.withName('video’));
источник

p

prz in Dart & Flutter по-русски
хм
источник

KB

Kirill Bubochkin in Dart & Flutter по-русски
вернее, так он вроде убьет все страницы до видео. В общем, идея такая, что вызываете этот pushNamedAndRemoveUntil, он добавляет новую страницу, и убивает все предыдущие, пока предикат возвращает false
источник

p

prz in Dart & Flutter по-русски
точно не страницу с видео убивает
источник

p

prz in Dart & Flutter по-русски
@override
 void callStateChanged(Call call, CallState callState) {
   if (callState.state == CallStateEnum.CALL_INITIATION) {
     //Navigator.pushNamed(context, '/callscreen', arguments: call);
     Navigator.push(
         context,
         MaterialPageRoute(
             builder: (context) => CallScreenWidget(helper, call)));
     Navigator.pushNamedAndRemoveUntil(
         context, 'CallScreenWidget', ModalRoute.withName('CamSingle'));
   }
 }
источник

p

prz in Dart & Flutter по-русски
если я верно сделал
источник

KB

Kirill Bubochkin in Dart & Flutter по-русски
ну да, там в третьем аргументе надо указать главную страницу, тогда он убьет всё до главной страницы
источник

p

prz in Dart & Flutter по-русски
а
источник

KB

Kirill Bubochkin in Dart & Flutter по-русски
а зачем 2 раза пуш?
источник

I

Ivan in Dart & Flutter по-русски
не там сделал)
источник

I

Ivan in Dart & Flutter по-русски
тебе ремувантил нужно делать на той странице, где нужно вернуться в самое начало
источник

p

prz in Dart & Flutter по-русски
патамуштая пепихонец бестолковый
источник

p

prz in Dart & Flutter по-русски
источник