最简单的方法是使用重叠和裁剪。
class OverlapSquare extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
height: 200,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
color: Colors.red,
),
child: ClipRect(
clipBehavior: Clip.hardEdge,
child: OverflowBox(
maxHeight: 250,
maxWidth: 250,
child: Center(
child: Container(
decoration: BoxDecoration(
color: Colors.white,
shape: BoxShape.circle,
),
),
),
),
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
OverFlowBox允许圆在其父级的边界之外绘制,然后cliprect将其切回边缘。
仅供参考-在我的设备上,我在白色圆圈的顶部和底部出现一条细小的红线。我相当确定这是最近出现的抖动问题,因为如果在容器周围放置白色边框,也会看到类似的现象。为此,我在github上提出了一个问题。
ClipRRect 对我来说效果最好。
查看参考视频:https : //www.youtube.com/watch?v=eI43jkQkrvs&vl=en
ClipRRect(
borderRadius: BorderRadius.cirular(10),
child: myContainerWithCircleWidget,
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2211 次 |
| 最近记录: |