AnimatedContainer получает ошибку рендеринга при анимации его высоты, так как содержит значки при увеличении высоты - PullRequest
0 голосов
/ 25 марта 2020

При длительном нажатии контейнер должен увеличить свою высоту и показать значки. но при увеличении размера возникает ошибка рендеринга, так как значение иконки становится истинным при длительном нажатии. Как это исправить.

GestureDetector(
      onLongPress: () {
        setState(() {
          widget.heightoo = widget.heightoo == 100 ? 150 : 100;
          widget.booly = widget.booly == true ? false : true;
        });
      },
      child: AnimatedContainer(
        duration: new Duration(milliseconds: 500),
        height: widget.heightoo,
        padding: EdgeInsets.symmetric(horizontal: 20, vertical: 10),
        child: Card(
          elevation: 4,
          shape:
              RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Container(
                child: Row(
                  children: <Widget>[
                    SizedBox(
                      width: 20,
                    ),
                    Container(
                      height: 50,
                      width: 50,
                      decoration: BoxDecoration(
                        borderRadius: BorderRadius.circular(14),
                        color: Colors.lightBlueAccent,
                      ),
                      child: ClipRRect(
                          borderRadius: BorderRadius.circular(14),
                          child: Icon(Icons.person)),
                    ),
                    SizedBox(
                      width: 20,
                    ),
                    Column(
                      mainAxisAlignment: MainAxisAlignment.center,
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: <Widget>[
                        Container(
                          width: 145,
                          child: Text(
                            widget.tasks1,
                            maxLines: 2,
                            softWrap: true,
                            overflow: TextOverflow.fade,
                            style: TextStyle(
                                fontFamily: 'Poppins',
                                fontWeight: FontWeight.w600,
                                fontSize: 12,
                                color: platformblue),
                          ),
                        ),
                        Container(
                          width: 145,
                          child: Text(
                            widget.tasks3 + ' ' + widget.tasks4,
                          ),
                        ),
                      ],
                    ),
                    SizedBox(
                      width: 20,
                    ),
                    Icon(
                        !widget.booly
                            ? widget.task2 ? Icons.live_tv : Icons.location_on
                            : null,
                        size: 40,
                        color: Color(0xFF2143af)),
                  ],
                ),
              ),
              Container(
                  child: widget.booly
                      ? Padding(
                          padding: const EdgeInsets.only(top: 15),
                          child: Row(
                            mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                            children: <Widget>[
                              Icon(
                                Icons.edit,
                                color: Color(0xFF2143af),
                              ),
                              Container(
                                color: Colors.white,
                                height: 30,
                                width: 1,
                                child: VerticalDivider(
                                  color: Colors.black,
                                ),
                              ),
                              GestureDetector(
                                  onTap: () {
                                    print(widget.tasks1);
                                  },
                                  child: Icon(Icons.location_on,
                                      color: Color(0xFF2143af))),
                            ],
                          ),
                        )
                      : null)
            ],
          ),
        ),
      ),
    );

example image

Есть ли какой-либо другой лучший способ анимировать контейнер таким же образом

Я добавляю случайное слово как StackOverflow говорит, что это сообщение в основном code.add и некоторые другие подробности

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