我试着用我的CircleAvatar来拟合这个图像,我试着设置图像的高度和宽度,但是它没有工作。曾尝试过BoxFit.fill、BoxFit.cover、BoxFit.fitWidth和BoxFit.fitHeight,但仍然没有成功。
下面是CircleAvatar:

我的密码是:
ClipOval(
child: conversation.image=='' ?
CircleAvatar(child: Image.asset('assets/images/defaultuser.png',),radius: 25,) :
CircleAvatar(child: Image.network(conversation.image!),radius: 25,)
),有什么解决办法吗?
发布于 2022-01-31 05:37:20
使用backgroundImage而不是CircleAvatar的child属性。
class MyWidget extends StatelessWidget {
final networkImage =
'https://images.pexels.com/photos/462118/pexels-photo-462118.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500';
final assetImage = 'assets/images/defaultuser.png';
@override
Widget build(BuildContext context) {
return Center(
child: CircleAvatar(
radius: 25.0,
backgroundImage: networkImage.isEmpty
? AssetImage(assetImage)
: NetworkImage(networkImage) as ImageProvider,
child: const SizedBox.shrink(),
),
);
}
}发布于 2022-01-31 04:58:01
用ClipOval包装Sizebox,使它始终具有相同的大小和高度
SizedBox(
height: 60,
width: 60,
child: ClipOval(
child: conversation.image=='' ?
Image.asset('assets/images/defaultuser.png',fit:BoxFit.cover,):
Image.network(conversation.image!,fit:BoxFit.cover,),))这应该生成如下图像:https://i.stack.imgur.com/uxq4c.png
发布于 2022-01-31 05:01:37
ClipOval(
child: CachedNetworkImage(
width: 100.0,
height: 100.0,
fit: BoxFit.cover,
imageUrl: "",
placeholder: (context, url) =>
new CircularProgressIndicator(),
errorWidget: (context, url, error) =>
new Icon(
Icons.account_circle,
color: Colors.blue,
size: 100,
),
),
),https://stackoverflow.com/questions/70921349
复制相似问题