streambuilder is rebuilding again and again when keyboard popup or closes
Flutter calls the build() method every time it wants to change anything in the view, and this happens surprisingly often.
You can pass the stream into the stateless widget
MyApp({Key key, this.stream}) : super(key: key);
Or build the stream in the initState method if the widget is statefull.
@override
void initState() {
super.initState();
post = buildStream();
}