Анимированный контейнер Flutter: предотвращение переполнения дочернего виджета формы - PullRequest
0 голосов
/ 29 мая 2020

Я создал дерево виджетов, в котором форма находится внутри ListView, который находится внутри анимированного контейнера, который затем находится внутри другого ListView, содержащего другие анимированные виджеты с другими формами.

В основном вот так 1003 *

ListView   =>   AnimatedContainers   =>   ListViews   =>   Forms

Код работает нормально. Но проблема во взаимодействии с пользователем. root ListView нельзя прокручивать по открытой форме, так как он сам открыт внутри ListView, который вместо этого прокручивается.

Я попытался найти подходящий виджет, который будет работать как контейнер для моей формы. виджета ListView. Но мои ограниченные знания виджетов и документации, которую я мог прочитать, не привели меня к решению, так как во время анимации полоса ошибок отображается с ошибкой Overflow.

Вот часть рассматриваемого кода.

AnimatedContainer(
                duration: Duration(seconds: 1),
                width: MediaQuery.of(context).size.width,
                height: regFormHeight,
                decoration: BoxDecoration(
                  color: (widget.darkTheme == true)
                      ? Colors.deepPurple[200]
                      : Colors.orange[600],
                ),
                child: Center(
                  child: ListView(
                    children: <Widget>[
                      Padding(
                        padding: const EdgeInsets.all(12.0),
                        child: Form(
                            child: Column(
                          children: <Widget>[
                            SizedBox(height: 20.0),
                            TextFormField(
                              decoration: InputDecoration(
                                hintText: "Enter Email",
                              ),
                              onChanged: (val) {
                                setState(() {
                                  email = val;
                                });
                              },
                            ),
                            SizedBox(height: 20.0),
                            TextFormField(
                              decoration: InputDecoration(
                                hintText: "Enter Password",
                              ),
                              obscureText: true,
                              onChanged: (val) {
                                setState(() {
                                  pswrd = val;
                                });
                              },
                            ),
                            SizedBox(height: 20.0),
                            RaisedButton(
                              color: (widget.darkTheme == true)
                                  ? Colors.deepPurple[700]
                                  : Colors.redAccent,
                              onPressed: () async {
                                print(email);
                                print(pswrd);
                              },
                              child: Text(
                                "Sign up",
                                style: TextStyle(
                                  fontFamily: 'ShareTechMono',
                                  color: (widget.darkTheme == true)
                                      ? Colors.white
                                      : Colors.black,
                                ),
                              ),
                            ),
                          ],
                        )),
                      ),
                    ],
                  ),
                ),
              ),

Основная задача - просто предоставить альтернативу виджету ListView внутри виджета AnimatedContainer. Виджет, который нельзя прокручивать, но не переполняется. Или может быть анимированная форма? Заранее спасибо.

...