ClipRRect
在其子树中插入一个修改小部件的渲染树的渲染对象。
的子树
ClipRRect将受到 影响,角将被剪裁。
对小部件本身及其子级的命中测试将在尊重剪切路径的情况下进行。这意味着小部件内的手势识别器(/按钮)将不会在剪切区域之外接收到轻击。
ClipRRect相对昂贵,但适合裁剪图像或其他本身不提供圆角设置的复杂图形元素。
Container另一方面,当与
BoxDecoration和
borderRadius
/
shape设置一起使用时,只需在背景上绘制一个带有圆角的框即可。
此类Container的子树 将不受 其父窗口小部件的背景装饰的影响。
Container会针对进行命中测试
borderRadius,从而为容器本身提供“真正圆润”的UI方向敲击体验。但是,儿童手势识别器不会处于装饰设置中-
因此,即使在“剪切”区域之外,手势也将照常接收。
带
shape或
borderRadius设置装饰的容器是优选的,因为不需要子树的剪切蒙版,绘画和维护相对较便宜。
最后,我确实要注意,此处描述的两种方法都不是您所用的最佳方法。
要创建
RaisedButton带有圆角
RoundedRectangleBorder的
shape,请使用按钮的属性。
例如
RaisedButton( shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(100)) // ...,)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)