容器borderRadius与ClipRRect borderRadius

容器borderRadius与ClipRRect borderRadius,第1张

容器borderRadius与ClipRRect borderRadius

ClipRRect

在其子树中插入一个修改小部件的渲染树的渲染对象。

子树

ClipRRect
将受到 影响,角将被剪裁。

对小部件本身及其子级的命中测试将在尊重剪切路径的情况下进行。这意味着小部件内的手势识别器(/按钮)将不会在剪切区域之外接收到轻击。

ClipRRect
相对昂贵,但适合裁剪图像或其他本身不提供圆角设置的复杂图形元素。


Container
另一方面,当与
BoxDecoration
borderRadius

/
shape
设置一起使用时,只需在背景上绘制一个带有圆角的框即可。

此类Container的子树 将不受 其父窗口小部件的背景装饰的影响。

Container
会针对进行命中测试
borderRadius
,从而为容器本身提供“真正圆润”的UI方向敲击体验。但是,儿童手势识别器不会处于装饰设置中-
因此,即使在“剪切”区域之外,手势也将照常接收。

shape
borderRadius
设置装饰的容器是优选的,因为不需要子树的剪切蒙版,绘画和维护相对较便宜。


最后,我确实要注意,此处描述的两种方法都不是您所用的最佳方法。

要创建

RaisedButton
带有圆角
RoundedRectangleBorder
shape
,请使用按钮的属性。

例如

RaisedButton(  shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(100))  // ...,)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5477772.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存