Dart 如何创建由群图标照片中的用户组成的群聊天图标(群中用户的拼贴)
在Flatter中,如何通过将群中用户的照片拼接成一个拼贴式图标(类似于facebook或snapchat)来创建群聊图标?例如,与此图像类似,但不是用户的姓名首字母,而是他们的用户照片:Dart 如何创建由群图标照片中的用户组成的群聊天图标(群中用户的拼贴),dart,flutter,Dart,Flutter,在Flatter中,如何通过将群中用户的照片拼接成一个拼贴式图标(类似于facebook或snapchat)来创建群聊图标?例如,与此图像类似,但不是用户的姓名首字母,而是他们的用户照片: ]XMJ)这涉及使用颤振布局。 (注意:提供的图像具有无效链接) 你可以试试这个 return Scaffold( appBar: AppBar(title: Text('Flow Layout Flutter')), body: Center( child: Container(
]XMJ)这涉及使用颤振布局。 (注意:提供的图像具有无效链接) 你可以试试这个
return Scaffold(
appBar: AppBar(title: Text('Flow Layout Flutter')),
body: Center(
child: Container(
color: Colors.teal,
child: Flow(
delegate: SampleFlowDelegate(),
children: <Widget>[
buildItem(0),
buildItem(1),
buildItem(2),
buildItem(3),
buildItem(4),
buildItem(5),
buildItem(6),
],
),
),
),
);
返回脚手架(
appBar:appBar(标题:文本(“流布局颤振”),
正文:中(
子:容器(
颜色:Colors.teal,
孩子:流(
委托:SampleFlowDelegate(),
儿童:[
构建项(0),
第(1)项,
第(2)项,
第(3)项,
第(4)项,
第(5)项,
第(6)项,
],
),
),
),
);
或
Wrap(
间距:8.0,//相邻芯片之间的间隙
行间距:4.0,//行间距
儿童:[
芯片(
头像:CircleAvatar(背景色:Colors.blue.shade900,child:Text('AH')),
标签:文本('Hamilton'),
),
芯片(
头像:CircleAvatar(背景色:Colors.blue.shade900,child:Text('ML')),
标签:文本('Lafayette'),
),
芯片(
头像:CircleAvatar(背景色:Colors.blue.shade900,child:Text('HM')),
标签:文本('Mulligan'),
),
芯片(
头像:CircleAvatar(背景色:Colors.blue.shade900,child:Text('JL')),
标签:文本('Laurens'),
),
],
)
在您的情况下,您可以通过编程方式添加图像小部件。我相信您正在寻找类似的东西: 如果是这样的话,你所需要的就是一个装饰着
容器的圆圈,上面有一个列
,该列被剪裁到圆圈上,并有两个扩展的
行和你的头像(我在它的位置使用彩色容器)
您可以定义容器(圆)的半径,化身将相应地调整大小(每个为50%)
但是,请记住,这并不考虑纵横比(您可以查看AspectRatio
),因为我不知道这是否是您要寻找的<代码>包装
小部件的建议可能也会奏效,但是,我发现使用Flex
小部件更适合这种情况
class GroupAvatar extends StatelessWidget {
final double _containerRadius = 300.0;
Widget _buildAvatar(double avatarRadius, Color color) {
return Expanded(
child: Container(
color: color,
height: avatarRadius,
width: avatarRadius,
),
);
}
@override
Widget build(BuildContext context) {
final double avatarRadius = _containerRadius * 0.5;
return MaterialApp(
home: Scaffold(
body: Center(
child: Container(
height: _containerRadius,
width: _containerRadius,
decoration: BoxDecoration(
color: Colors.white,
shape: BoxShape.circle,
),
child: ClipOval(
clipBehavior: Clip.antiAlias,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Row(
children: <Widget>[
_buildAvatar(avatarRadius, Colors.green),
_buildAvatar(avatarRadius, Colors.blue),
_buildAvatar(avatarRadius, Colors.black),
],
),
Row(
children: <Widget>[
_buildAvatar(avatarRadius, Colors.yellow),
_buildAvatar(avatarRadius, Colors.red),
_buildAvatar(avatarRadius, Colors.orange),
],
)
],
),
),
),
),
),
);
}
}
class-GroupAvatar扩展了无状态小部件{
最终双容器半径=300.0;
小部件_buildAvatar(双化身,彩色){
扩大回报(
子:容器(
颜色:颜色,
身高:阿瓦塔拉迪乌斯,
宽度:阿瓦塔拉迪乌斯,
),
);
}
@凌驾
小部件构建(构建上下文){
最终双阿瓦塔拉迪乌斯=_containerRadius*0.5;
返回材料PP(
家:脚手架(
正文:中(
子:容器(
高度:_containerRadius,
宽度:_containerRadius,
装饰:盒子装饰(
颜色:颜色,白色,
形状:BoxShape.circle,
),
孩子:斜坡(
clipBehavior:Clip.antiAlias,
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
划船(
儿童:[
_构建阿凡达(阿凡达,颜色。绿色),
_构建阿凡达(阿凡达,颜色,蓝色),
_构建阿凡达(阿凡达,彩色,黑色),
],
),
划船(
儿童:[
_构建阿凡达(阿凡达,彩色,黄色),
_构建阿凡达(阿凡达,彩色,红色),
_构建阿凡达(阿凡达,颜色,橙色),
],
)
],
),
),
),
),
),
);
}
}
我已更新了图像,您的代码是否适用于此类内容?
class GroupAvatar extends StatelessWidget {
final double _containerRadius = 300.0;
Widget _buildAvatar(double avatarRadius, Color color) {
return Expanded(
child: Container(
color: color,
height: avatarRadius,
width: avatarRadius,
),
);
}
@override
Widget build(BuildContext context) {
final double avatarRadius = _containerRadius * 0.5;
return MaterialApp(
home: Scaffold(
body: Center(
child: Container(
height: _containerRadius,
width: _containerRadius,
decoration: BoxDecoration(
color: Colors.white,
shape: BoxShape.circle,
),
child: ClipOval(
clipBehavior: Clip.antiAlias,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Row(
children: <Widget>[
_buildAvatar(avatarRadius, Colors.green),
_buildAvatar(avatarRadius, Colors.blue),
_buildAvatar(avatarRadius, Colors.black),
],
),
Row(
children: <Widget>[
_buildAvatar(avatarRadius, Colors.yellow),
_buildAvatar(avatarRadius, Colors.red),
_buildAvatar(avatarRadius, Colors.orange),
],
)
],
),
),
),
),
),
);
}
}