Поместите gif за трепетание кнопки

#flutter #dart #flutter-layout

#трепетание #дротик #трепетание-макет

Вопрос:

Я добавил GIF к кнопке. При нажатии на кнопку он будет воспроизводить этот gif. Я использую виджет стека, чтобы накладывать их друг на друга. Тем не менее, я хочу, чтобы gif был позади и кнопка поверх него. В настоящее время это выглядит так

введите описание изображения здесь

Как я могу переместить gif за кнопку и в то же время сделать его видимым.

Мой код:

   Stack(



                children: [

                  FloatingActionButton(
                    child: Icon(Icons.share),
                    heroTag: null,
                    backgroundColor: primaryColor,

                    onPressed: () {

                      setState(() {
                        isOpen = true;
                      });

                      shareUserProfile();
                    },
                  ),
                  isOpen
                      ?       Positioned.fill(
                    child: Image.asset('assets/images/CELEB.gif',

                     fit: BoxFit.contain,
                    ),
                  )

                      : Container(),
                ],
              ),
  

Комментарии:

1. Просто для ясности. Вы хотите следующее: 1) Кнопка видна. GIF не является. 2) После нажатия кнопки gif становится видимым над кнопкой? 3) Должна ли кнопка нажиматься после того, как она была нажата один раз?

Ответ №1:

Просто поместите GIF перед этим в список дочерних элементов:

 Stack(
      children: [

              isOpen?       Positioned.fill(
                child: Image.asset('assets/images/CELEB.gif',

                 fit: BoxFit.contain,
                ),
              )

                  : Container(),
              FloatingActionButton(
                child: Icon(Icons.share),
                heroTag: null,
                backgroundColor: primaryColor,

                onPressed: () {

                  setState(() {
                    isOpen = true;
                  });

                  shareUserProfile();
                },
              ),
            ],
          ),