Трепетание, если еще состояние у ребенка - PullRequest
0 голосов
/ 26 февраля 2020

Я работаю над приложением для проверки флаттера, и оно получает вопрос и изображения из файла JSON. Когда приложение работает без изображений, я получаю символ загрузки, и мне нужно удалить этот символ загрузки без использование изображений if, но я сталкиваюсь с ошибками Я прилагаю код Psuedo Может кто-нибудь сказать, как я могу это сделать ???

 Expanded(
                              child: AspectRatio(
                                aspectRatio: 16 / 11,
                                child: ClipRect(
                                  child: SizedBox(
                                    height: 50,
                                    child: PhotoView(
                                      imageProvider: AssetImage(
                                          myQuestion[i]["Image"] ?? "None"),
                                      minScale:
                                      PhotoViewComputedScale.contained *
                                          0.5,
                                      maxScale:
                                      PhotoViewComputedScale.covered * 2,
                                      initialScale: 0.6,
                                      backgroundDecoration: BoxDecoration(
                                        color: Theme.of(context).canvasColor,
                                      ),
                                    ),
                                  ),
                                ),
                              ),
                            ),


1 Ответ

1 голос
/ 26 февраля 2020

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

Вы можете переместить проверку logi c из AssetImage выше в дерево виджетов.

Expanded(
  child: AspectRatio(
    aspectRatio: 16 / 11,
    child: ClipRect(
      child: SizedBox(
        height: 50,
        child: myQuestion[i]["Image"]!=null && myQuestion[i]["Image"].isNotEmpty() 
           ? PhotoView(
               imageProvider: AssetImage( myQuestion[i]["Image"] ), // we know it's not empty and is not null
               minScale: PhotoViewComputedScale.contained * 0.5,
               maxScale: PhotoViewComputedScale.covered * 2,
               initialScale: 0.6,
               backgroundDecoration: BoxDecoration(
                 color: Theme.of(context).canvasColor,
               ),
             )
           : Container(),
         ),
      ),
   ),
),

Мы используем троичный оператор, чтобы проверить, не является ли ресурс нулевым и не пустым. Если оно имеет допустимое значение, мы отображаем изображение, в противном случае мы отображаем и очищаем контейнер. Эти логи c можно перемещать вверх по дереву виджетов в зависимости от того, что вы хотите отобразить и где.

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