Я не уверен, что вы можете обернуть его вокруг виджета, но вы можете использовать комбинацию Stack
и Positioned
для достижения этой цели. Вам необходимо настроить переменные radius
, iconSize
и distance
в этом примере согласно вашему требованию.
@override
Widget build(BuildContext context) {
double radius = 40;
double iconSize = 20;
double distance = 10;
return Scaffold(
body: Center(
child:
Stack(
alignment: Alignment.center,
overflow: Overflow.visible,
children: [
CircleAvatar(
radius: radius,
backgroundImage:
NetworkImage('https://via.placeholder.com/150'),
backgroundColor: Colors.transparent,
),
Positioned(
top: -(radius + iconSize + distance),
right: 0,
bottom: radius,
left: 0,
child: Icon(
Icons.access_alarm,
color: Colors.blue,
size: iconSize,
)),
Positioned(
top: -(iconSize + radius),
right: -(radius + iconSize - distance),
bottom: iconSize,
left: radius,
child: Icon(
Icons.email,
color: Colors.blue,
size: iconSize,
)),
Positioned(
top: -(radius - distance),
right: -(radius + iconSize + distance),
bottom: -iconSize,
left: radius,
child: Icon(
Icons.account_balance,
color: Colors.blue,
size: iconSize,
)),
]),
),
);
}