Flutter使用FadeInImage作为CircleAvatar背景出现类型不匹配报错如何解决
报错原因
CircleAvatar的backgroundImage参数要求传入ImageProvider类型的对象(你之前用的NetworkImage就属于该类型),而FadeInImage是完整的Widget组件,不属于ImageProvider类型,两者类型不匹配所以触发编译报错。
解决方案
调整布局结构,将FadeInImage放在CircleAvatar的child属性中,配合ClipOval裁剪为圆形即可保留淡入加载效果,代码示例如下:
child: Obx(() { return CircleAvatar( backgroundColor: Colors.grey, maxRadius: 100, child: controller.urlImagem.value.isNotEmpty ? ClipOval( child: FadeInImage.memoryNetwork( placeholder: kTransparentImage, image: controller.urlImagem.value, fit: BoxFit.cover, width: 200, // 数值为maxRadius的两倍,保证撑满整个圆形区域 height: 200, ), ) : null, ); }),
如果需要保留占位图的显示逻辑,也可以在空值判断的分支放入你需要的占位Widget即可。
内容的提问来源于stack exchange,提问作者flavio_vieira_stack
相关产品推荐
相关产品推荐

