Как я могу отображать только текст без изображения во флаттере - PullRequest
0 голосов
/ 09 июля 2020

Я создал функцию, в которой пользователи могут загружать изображение и загружать описание, информирующее о тексте. Пользователь может выбрать загрузку изображения с описанием по-другому, а также может по-другому загрузить только описание без изображения. После загрузки текста в firestore и запроса его для отображения в сообщении пользователя он вернет ошибку:

Cached_image_widget.dart: Failed assertion: line 163 POS 16: 'imageUrl! = Null': is не соответствует действительности.

Код метода cachedNetworkImage:

Widget cachedNetworkImage(String mediaUrl) {
  return CachedNetworkImage(
    imageUrl: mediaUrl,
    fit: BoxFit.cover,
    placeholder: (context, url) => Padding(
      padding: EdgeInsets.all(20.0),
      child: CircularProgressIndicator(),
      ),
      errorWidget: (context, url, error) => Icon(Icons.error),
    );
}

Это мой код для изображения сообщения:

buildPostImage() {
       return Padding(
          padding: const EdgeInsets.all(8.0),
          child: GestureDetector(
            onDoubleTap: handleLikePost,
            child: Stack(
              alignment: Alignment.center,
              children: <Widget>[
                cachedNetworkImage(mediaUrl),
                showHeart ? Icon(Icons.favorite, size: 100.0, color: 
                Colors.grey[400]) :
                Text(''),
          ],
        ),
      ),
    );
  }

это код для описания:

 Row(
      crossAxisAlignment: CrossAxisAlignment.start,
      children: <Widget>[
        Expanded(
          child: Padding(
            padding: const EdgeInsets.only(),
            child: Container(
              decoration: BoxDecoration(
               // color: Colors.grey[800],
                borderRadius: BorderRadius.circular(0.0)
              ),
              child: Padding(
                padding: const EdgeInsets.all(10.0),
                child: Text(
                  description,
                  style: TextStyle(
                    fontSize: 17.0,
                  ),
                ),
              ),
            ),
          ),
        ),
      ],
    ),

1 Ответ

2 голосов
/ 09 июля 2020

Кажется, что imageUrl получает null, чтобы исправить это, вы можете сделать следующее:

buildPostImage() {
       return Padding(
          padding: const EdgeInsets.all(8.0),
          child: GestureDetector(
            onDoubleTap: handleLikePost,
            child: Stack(
              alignment: Alignment.center,
              children: <Widget>[
                mediaUrl != null ? cachedNetworkImage(mediaUrl) : Container(),
                showHeart ? Icon(Icons.favorite, size: 100.0, color: 
                Colors.grey[400]) :
                Text(''),
          ],
        ),
      ),
    );
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...