Bu benim için çalışıyor. Aslında bloc ile çalışıyordum ama sorunum giriş ekranı bloğuydu. Oturumu kapattıktan sonra güncellenmiyordu. Önceki model verilerini tutuyordu. Hatta yanlış girişe girdim, Ana Ekrana gidiyordu.
Aşama 1:
Navigator.of(context).pushNamedAndRemoveUntil(
UIData.initialRoute, (Route<dynamic> route) => false);
nerede,
UIData.initialRoute = "/" or "/login"
Adım 2:
Ekranı yenilemeye çalışıyor. Bloc ile çalışıyorsanız, çok yardımcı olacaktır.
runApp(MyApp());
nerede,
MyApp() is the root class.
Kök sınıf (yani Uygulamam) kodu
class MyApp extends StatelessWidget {
final materialApp = Provider(
child: MaterialApp(
title: UIData.appName,
theme: ThemeData(accentColor: UIColor().getAppbarColor(),
fontFamily: UIData.quickFont,
),
debugShowCheckedModeBanner: false,
initialRoute: UIData.initialRoute,
routes: {
UIData.initialRoute: (context) => SplashScreen(),
UIData.loginRoute: (context) => LoginScreen(),
UIData.homeRoute: (context) => HomeScreen(),
},
onUnknownRoute: (RouteSettings rs) => new MaterialPageRoute(
builder: (context) => new NotFoundPage(
appTitle: UIData.coming_soon,
icon: FontAwesomeIcons.solidSmile,
title: UIData.coming_soon,
message: "Under Development",
iconColor: Colors.green,
)
)));
@override
Widget build(BuildContext context) {
return materialApp;
}
}
void main() => runApp(MyApp());
İşte My Logout yöntemi,
void logout() async {
SharedPreferences preferences = await SharedPreferences.getInstance();
preferences.clear();
Navigator.of(context).pushNamedAndRemoveUntil(
UIData.initialRoute, (Route<dynamic> route) => false);
runApp(MyApp());
}