Клавиши со стрелками обычно не перемещают выделение, поэтому вы должны были выполнить какой-то код для ответа на клавиши со стрелками для перемещения выбранных частей.
Если это так, то почему вы не можете то делаете все, что хотите сделать в обработчике событий клавиатуры?
Другими словами, если вы пишете какой-то код, который изменяет Node.location некоторых узлов, то не должно быть никаких «SelectionMoved» DiagramEvent. Поэтому, если вы хотите что-то сделать, когда переместите узел, просто сделайте это после того, как вы переместили узел.
Вы можете добавить ошибку к Stream
и перехватить ее в StreamBuilder
следующим образом:
_someStreamCtrl.addError(error); // Client is offline
И в StreamBuilder
:
StreamBuilder<String>(
stream: someStream,
initialData: [],
builder: (BuildContext context,
AsyncSnapshot<String> snap) {
if (snap.hasError)
return ErrorWidget(); //Error
if (snap.hasData)
return // Desired widget
//if waiting
return CircularProgressIndicator();
);
},
);