Flutter 默认图像占位符
Flutter Default Image Placeholder
在我的数据中,我有帖子,但有些帖子有图片网址,有些帖子有 false
值,在显示时我想显示值是 false
的占位符
这是我的代码:
child: FadeInImage(
placeholder: AssetImage('assets/images/placeholder.png'),
image: NetworkImage(posts[index].featuredImage.large ) == null ?
Image.asset('assets/images/placeholder.png') : NetworkImage(posts[index].featuredImage.large ),
fit: BoxFit.cover,
),
这就是你如何做到的
child: post[index].url==false? Image.assets('assets/images/placeholder.png'): FadeInImage(
fit: BoxFit.cover,
placeholder: AssetImage('assets/images/placeholder.png'),
image: posts[index].featuredImage.large == null ?
Image.asset('assets/images/placeholder.png') : NetworkImage(posts[index].featuredImage.large ),
),
但是如果你的 url 被声明为 String
就会出现问题,因为 false
不是 String
并且比较不同的数据类型不是一件好事主意 。那么你将不得不检查RuntimeType
例如:post[index].url is String
//如果 url 是一个字符串
则为真
您不需要将条件 posts[index].featuredImage.large
包装在 NetworkImage
小部件中。
只需检查来自 API 的字符串是否为空,然后将默认 Image
设置为 Image.asset('assets/images/placeholder.png')
,如果不为空,则将 Image
设置为NetworkImage(posts[index].featuredImage.large )
.
试试下面的代码:
FadeInImage(
placeholder: AssetImage('assets/images/placeholder.png'),
image: posts[index].featuredImage.large == null ?
Image.asset('assets/images/placeholder.png') : NetworkImage(posts[index].featuredImage.large ),
fit: BoxFit.cover,
),
在我的数据中,我有帖子,但有些帖子有图片网址,有些帖子有 false
值,在显示时我想显示值是 false
这是我的代码:
child: FadeInImage(
placeholder: AssetImage('assets/images/placeholder.png'),
image: NetworkImage(posts[index].featuredImage.large ) == null ?
Image.asset('assets/images/placeholder.png') : NetworkImage(posts[index].featuredImage.large ),
fit: BoxFit.cover,
),
这就是你如何做到的
child: post[index].url==false? Image.assets('assets/images/placeholder.png'): FadeInImage(
fit: BoxFit.cover,
placeholder: AssetImage('assets/images/placeholder.png'),
image: posts[index].featuredImage.large == null ?
Image.asset('assets/images/placeholder.png') : NetworkImage(posts[index].featuredImage.large ),
),
但是如果你的 url 被声明为 String
就会出现问题,因为 false
不是 String
并且比较不同的数据类型不是一件好事主意 。那么你将不得不检查RuntimeType
例如:post[index].url is String
//如果 url 是一个字符串
您不需要将条件 posts[index].featuredImage.large
包装在 NetworkImage
小部件中。
只需检查来自 API 的字符串是否为空,然后将默认 Image
设置为 Image.asset('assets/images/placeholder.png')
,如果不为空,则将 Image
设置为NetworkImage(posts[index].featuredImage.large )
.
试试下面的代码:
FadeInImage(
placeholder: AssetImage('assets/images/placeholder.png'),
image: posts[index].featuredImage.large == null ?
Image.asset('assets/images/placeholder.png') : NetworkImage(posts[index].featuredImage.large ),
fit: BoxFit.cover,
),