StatefulWidget Page recreate when keyboard is open
You should move your variable isUpdate
inside your State, remember the widget is inmutable.
class UpdateProfileState extends State<UpdateProfile> {
bool isUpdate = false;
@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
appBar: AppBar(
title: Text("Update"),
elevation: 2.0),
body: Container(
width: double.infinity,
height: double.infinity,
color: Colors.red,
margin: const EdgeInsets.all(10.0),
child: Row(
children: <Widget>[
isUpdate ? new Flexible(child: new TextField()) : Text("Text Widget"),
GestureDetector(
child: IconTheme(
data: IconThemeData(color: Color(0xFFffffff)),
child: Icon(Icons.edit)),
onTap: () {
setState(() {
isUpdate = !isUpdate;
});
},
)
],
),
),
);
}
}
And also change this:
Navigator.push(context,MaterialPageRoute(builder: (context) => UpdateProfile()))
To this:
final page = UpdateProfile();
Navigator.push(context,MaterialPageRoute(builder: (context) => page ))
as an addition, if you do something on didChangeDependencies method, thats also gonna cause that