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

У меня есть страница, которая не была инициализирована повторно, когда я закрываю ее и открываю снова.

Все работает нормально при нормальном процессе

enter image description here

, когда я снова открываю его, приложение просто пустое

enter image description here

Я также поставил медиазапрос, который определяет, является ли это планшетом или мобильным просмотром (работает в обычном процессе)

final _portrait = Orientation.portrait;
final _landscape = Orientation.landscape;
_screenWidth = constraints.maxWidth;
_screenHeight = constraints.maxHeight;
isMobile = _screenWidth < 650 ? true : false;

И он возвращает мне ошибку (Когда я закрою и снова открою приложение). Это означает, что виджет не инициализируется.

enter image description here

Мой код - это просто дерево виджетов.

 Widget build(BuildContext context) {
return Scaffold(
  body: Container(
    color: Theme.of(context).backgroundColor,
    alignment: Alignment.center,
    child: Center(
      child: SingleChildScrollView(
        // shrinkWrap: true,
        child: Column(
          children: <Widget>[
            SizedBox(
              height: MediaQuery.of(context).size.height * 0.05,
            ),
            Mylogo(),
            welcomeMessage(context),
          ],
        ),
      ),
    ),
  ),
);

}}

Widget welcomeMessage(BuildContext context) {
final bloc = UserProvider.of(context);
double aproxPadding = MediaQuery.of(context).size.width * 0.12;
double aproxPadding2 = MediaQuery.of(context).size.width * 0.05;
double aproxPadding3 = MediaQuery.of(context).size.width * 0.08;
double aproxSizedBox0 = MediaQuery.of(context).size.height * 0.07;
double aproxSizedBox = MediaQuery.of(context).size.height * 0.03;
double aproxSizedBox2 = MediaQuery.of(context).size.height * 0.04;
double aproxSizedBox3 = MediaQuery.of(context).size.height * 0.1;
return ResponsiveTemplate(
  child: Column(
    mainAxisAlignment:  MainAxisAlignment.start,
    crossAxisAlignment: SizeConfiguration.isTablet ? CrossAxisAlignment.center : CrossAxisAlignment.start,
    children: <Widget>[
      Padding(
        padding: EdgeInsets.only(left: aproxPadding, right: aproxPadding),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.start,
          crossAxisAlignment: CrossAxisAlignment.start,
          children: <Widget>[
            SizedBox(
              height: aproxSizedBox0,
            ),
            Text(
              S.of(context).helloScreenInfo1 +
                  bloc.currentUser.username +
                  '!',
              style: Theme.of(context).textTheme.title,
            ),
            SizedBox(
              height: aproxSizedBox,
            ),
            Padding(
              padding: EdgeInsets.only(right: aproxPadding2),
              child: Text(
                S.of(context).helloScreenInfo2,
                style: TextStyle(
                  color: Theme.of(context).primaryColor,
                  fontSize: 20.0,
                  fontWeight: FontWeight.bold,
                ),
              ),
            ),
            SizedBox(
              height: aproxSizedBox,
            ),
            Padding(
              padding: EdgeInsets.only(right: aproxPadding2),
              child: AutoSizeText(
                S.of(context).helloScreenInfo3,
                style: TextStyle(
                  fontSize: 16.0,
                  fontWeight: AppWeights.medium
                ),
              ),
            ),
            SizedBox(
              height: aproxSizedBox2,
            ),
          ],
        ),
      ),
      Padding(
        padding: SizeConfiguration.isTablet ? EdgeInsets.only(left: SizeConfiguration.screenWidth * 0.35, right: SizeConfiguration.screenWidth * 0.35) : EdgeInsets.only(left: aproxPadding3, right: aproxPadding3),
        child: Column(
          children: <Widget>[
            CustomButton2(
              title: S.of(context).helloScreenBtnStartShift,
              asset: 'shift',
              onPressed: () {
                goToTableAssignmentScreen(context);
              },
            ),
            SizedBox(
              height: aproxSizedBox3,
            ),
          ],
        ),
      )
    ],
  ),
);

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...