小部件中的图像 [颤动]
Posted
技术标签:
【中文标题】小部件中的图像 [颤动]【英文标题】:Image in widget [flutter] 【发布时间】:2018-09-05 03:51:43 【问题描述】:我想做一张卡片,几张卡片在飘。右侧是图像,左侧是信息文本。我用 CircleAvatar 对其进行了测试,它几乎像我想要的那样工作,但我不想要一个圆圈,我想要一个方形图像。我删除了 CircleAvatar 部分并放入了一个新容器和一个孩子,但我无法使用 AssetImage,我唯一可以使用的是 image.asset('.jpg')。图像几乎比手机大,因为没有可行的方法来设置大小。使用 CircleAvatar 它可以工作,因为我将半径设置为大小。 当我尝试 AssetImage() vscode 对我说我不能把它放在一个小部件中。 我希望你能帮助我(我认为 image.asset() 不是正确的方法)。谢谢大家
return new MaterialApp(
title: title,
home: new Center(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Card(
child: new Column(
children: <Widget>[
new Row(
children: <Widget>[
new Container(
child:
new CircleAvatar(
backgroundImage: new AssetImage('images/lake.jpg'),
radius: 80.0,
child: new Container(
padding: const EdgeInsets.all(0.0),
child: new Text('Sight'),
),
)
),
),
new Container(
child: new Text('long information text'),
)
],
)
],
),
)
],
),
)
);
【问题讨论】:
Minimal, Complete, and Verifiable example 【参考方案1】:您应该能够为您的行执行此操作:
Widget build(BuildContext context)
return new MaterialApp(
title: 'Sample App',
home: new Center(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Card(
child: new Column(
children: <Widget>[
new Row(
children: <Widget>[
new Container(
child: new Image.asset(
'images/lake.jpg',
height: 60.0,
fit: BoxFit.cover,
),
),
new Container(
child: new Text('long information text'),
),
],
),
],
),
),
],
),
),
);
【讨论】:
非常感谢,这解决了我的问题。你知道如何使图像的角变成圆形吗?我用borderradius尝试过,但没有任何变化。在这里你可以看到它:pastebin.com/g8Bu2jXD【参考方案2】:在您的评论中获得答案!
你可以使用 ClipRRect,
new ClipRRect(
borderRadius: new BorderRadius.circular(8.0),
child: new AssetImage('images/lake.jpg')
)
你也可以这样做:
new Container(
width: 50.0,
height: 50.0,
decoration: new BoxDecoration(
shape: BoxShape.circle,
image: new DecorationImage(
fit: BoxFit.fill,
image: new AssetImage('images/lake.jpg')
)
)),
【讨论】:
我为 svg 找到了单独的包,名为 flutter_svg: 。它对我来说很好:) ClippedRRect 似乎期望 Widget 作为一个孩子,所以 AssetImage 导致错误。以上是关于小部件中的图像 [颤动]的主要内容,如果未能解决你的问题,请参考以下文章