У меня есть простой экран входа в Google, и он работает. Но работает только один раз. После того, как я go вернусь и попытаюсь войти снова, все, что я вижу, это «в настоящее время вы не вошли в систему». Когда я перезапускаю все приложение, я все еще вошел в систему.
Вероятно, проблема где-то здесь:
main() {
runApp(MaterialApp(
home: Page1(),
));
}
class Page1 extends StatelessWidget {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Center(
child: RaisedButton(
child: Text('Go!'),
onPressed: () {
Navigator.of(context).push(_createRoute());
},
),
),
);
}
}
Route _createRoute() {
return PageRouteBuilder(
pageBuilder: (context, animation, secondaryAnimation) => Page2(),
transitionsBuilder: (context, animation, secondaryAnimation, child) {
var begin = Offset(0.0, 1.0);
var end = Offset.zero;
var curve = Curves.ease;
var tween = Tween(begin: begin, end: end).chain(CurveTween(curve: curve));
return SlideTransition(
position: animation.drive(tween),
child: child,
);
},
);
}
class Page2 extends StatelessWidget {
Widget build(BuildContext context) {
return Scaffold(
body: SignInDemo(),
);
}
}
void main2() {
runApp(
MaterialApp(
title: 'Google Sign In',
home: SignInDemo(),
),
);
}
class SignInDemo extends StatefulWidget {
@override
State createState() => SignInDemoState();
}
class SignInDemoState extends State<SignInDemo> {
GoogleSignInAccount _currentUser;
String _contactText;
@override
void initState() {
super.initState();
_googleSignIn.onCurrentUserChanged.listen((GoogleSignInAccount account) {
setState(() {
_currentUser = account;
Возможно, вызывающее тело: SignInDemo () в классе Page2 неверно? Хотя он действительно работает, он не будет работать во второй раз во время того же прогона. Я понимаю, что сборка вызывается только один раз, и мне нужно перерисовать новый экземпляр Widget (Stateful). Но разве я не этим уже занимался? Почему это не работает?
Изменить: я собираюсь вызвать его, и решить эту проблему, избавившись от перехода между входом в систему / не вошел в систему. Если кто-то знает, как решить эту проблему, пожалуйста, посоветуйте . Спасибо