Если вы уверены, что ваш виджет не должен быть перестроен, попробуйте что-то вроде этого кода ниже.
_widget будет создан один раз в initState, затем в методе сборки будет возвращен «кэшированный» виджет.
class MyStreamWidget extends StatefulWidget {
@override
_MyStreamWidgetState createState() => _MyStreamWidgetState();
}
class _MyStreamWidgetState extends State<MyStreamWidget> {
StreamBuilder _widget;
// TODO your stream
var myStream;
@override
void initState() {
super.initState();
_widget = StreamBuilder(
stream: myStream,
builder: (context, snapshot) {
// TODO create widget
return Container();
})
}
@override
Widget build(BuildContext context) {
return _widget;
}
}