Почему моя вторая страница не загружается должным образом после закрытия и повторного открытия? - PullRequest
0 голосов
/ 06 августа 2020

У меня есть страница настроек, доступ к которой осуществляется из верхней панели приложения. Это моя вторая страница, и ее содержимое - это код, полученный из примера google_sign_in: https://pub.dev/packages/google_sign_in/example

Практически никаких изменений в коде примера.

Я могу чтобы перейти на мою вторую страницу с моей первой и войти в Google без каких-либо проблем, и когда я перезагружаю приложение и go на страницу настроек, он автоматически выполняет вход. После того, как я вошел в систему и закрыл страницу настроек, вернуться на мою основную страницу, а затем снова go на страницу настроек, я застрял на «вы не вошли в систему», и ни одна из моих кнопок не работает.

Вот как я получаю доступ моя страница настроек:

  void handleClick(String value) {
    switch (value) {
      case 'Settings':
        Navigator.of(context).popUntil((route) => route.isFirst);
        Navigator.push(context, MaterialPageRoute
          (builder: (BuildContext context) => SignInDemo()));
        break;
    }
  }

Я пробовал создать RaisedButton onPressed: () => Navigator.pop (context). Он работает для закрытия экрана, но то же самое происходит, когда я пытаюсь снова открыть ... Он просто говорит: «Вы в настоящее время не вошли в систему», а моя кнопка входа ничего не делает.

Кто-нибудь знает как я могу правильно загрузить все и показать, что я вошел в систему после второго доступа к моей странице входа?

Думаю, я понял это ..

При входе я меня переполняет следующая ошибка:

Exception: Could not instantiate image codec.

Это приводит к тому, что моя вторая страница ломается sh и не перезагружается должным образом. Итак, он просто висит в сломанном состоянии. Устранит ошибку и проверит ее.

EDIT:

Я избавился от ошибки, удалив следующие строки:

          ListTile(
//            leading: GoogleUserCircleAvatar(
//              identity: _currentUser,
//            ),
//            title: Text(_currentUser.displayName ?? ''),
//            subtitle: Text(_currentUser.email ?? ''),
          ),

Проблема не устранена. Скоро будет обновлено.

РЕДАКТИРОВАТЬ: Понятия не имею, почему успешный вход ломает мою страницу 2. Ошибок нет .. Просто перестает работать. : |

РЕДАКТИРОВАТЬ:

Полу-обходной путь:

  Future<void> _handleSignIn() async {
    _googleSignIn.signOut();
    GoogleSignInAccount googleUser;
    try {
      googleUser = await _googleSignIn.signIn();
    } catch (e) {
      throw Error();
    }
    GoogleSignInAuthentication googleAuth = await googleUser.authentication;
  }

Моя кнопка снова работает. Тем не менее, я просто выхожу из системы и снова захожу.

Нашел другой обходной путь, но он не идеален:

  void handleClick(String value) {
    switch (value) {
      case 'Settings':
        _googleSignIn.signOut();

        _googleSignIn.signIn();


        Navigator.of(context).popUntil((route) => route.isFirst);
        Navigator.push(context, new MaterialPageRoute
          (builder: (BuildContext context) => new SignInDemo()));
        break;
    }
  } 
 

В основном меня каждый раз подписывает и выходит.

...