I used Navigator.push to navigator to next screen and after I pop that screen I could not able to rebuild the old screen. And also I want my code to rebuild if user on pressed the login button
//This is my stateful Widget
class LoginpageClass extends StatefulWidget {
@override
_LoginpageClassState createState() => _LoginpageClassState();
}
class _LoginpageClassState extends State<LoginpageClass> {
final _auth = FirebaseAuth.instance;
@override
Widget build(BuildContext context) {
return Scaffold(
body: SingleChildScrollView(child: buildBody(context)),
);
}
}
//Calling this widget above
Widget buildBody(BuildContext context) => Container(
width: double.infinity,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
buildTopClippers(),
heightSpacer(20.00),
buildLogoField(),
heightSpacer(25.00),
buildTextField(
"Username",
Icons.person,
false,
onChangedEmail,
),
heightSpacer(15.00),
buildTextField("Password", Icons.lock, true, onChangedPassword),
heightSpacer(25.00),
buildSignUpText(context),
heightSpacer(25.00),
buildLoginContainer(context),
heightSpacer(20.00),
buildOtherLogins(context),
buildBottomClippers()
],
),
);
//Calling buildLoginContainer above
Widget buildLoginContainer(BuildContext context) => Container(
width: MediaQuery.of(context).size.width,
height: 65,
child: Stack(
children: [
buildLoginBtn(context),
],
),
);
Widget buildLoginBtn(context) => Positioned(
right: -100,
child: FlatButton(
onPressed: () async {
print(email);
try {
final newUser = await _auth.signInWithEmailAndPassword(
email: Email, password: Password);
print(newUser);
if (newUser != null) {
Navigator.pushNamed(context, '/');
}
} catch (e) {
print(e);
}
},
child: Container(
width: 350,
height: 65,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(40.00),
color: Color.fromRGBO(11, 94, 255, 1),
),
child: buildLoginText(),
),
),
);
Widget buildLoginText() => Row(
children: [
widthSpacer(75.00),
Text(
"Login",
style: TextStyle(color: Colors.white, fontSize: 20.00),
),
widthSpacer(5.5),
Icon(
Icons.navigate_next,
color: Colors.white,
)
],
);
I am beginner on developer therefore I dont know how to use setState in this widget, and also it is not available for access through this widget. All widgets are created on seperate dart file.
I viewed some of wrote about inherited widget usage. How can it be used here?? Or any other method??