BorderRadius.circular(radius) 如何作为 RoundedRectangleBorder Flutter 的参数?

How does BorderRadius.circular(radius) work as a parameter for RoundedRectangleBorder Flutter?

文档简单地说明了

圆角矩形边框

A rectangular border with rounded corners.
Typically used with ShapeDecoration to draw a box with a rounded rectangle.
This shape can interpolate to and from CircleBorder.

BorderRadius.circular

Creates a border radius where all radii are [Radius.circular(radius)].

这是什么意思? 如果我的按钮是 50 个逻辑像素(25 个半径),并且我将半径设置为 20,那么它是否应该剪掉 20 个逻辑像素半径之外的角? 如果我将它设置为 30,整个按钮将在圆形半径内,因此不应剪裁任何内容。 事实并非如此。

>=30 的所有内容似乎都将边角剪成 45 度弧度,从而在按钮的每个短边上形成一个完整的半圆。

谁能解释一下这个值以及如何使用它?

半径告诉您创建的圆弧距离拐角多远。因此,如果您只想要略微圆润的角,则可以使用较小的值。 80pt x 30pt 的 DecoratedBox 可能采用 7pt 圆半径。一个半径从顶部和相邻边延伸 7pts 的圆。如果您应用的圆半径大于最短的可用边,那么您 运行 进入半圆。为此,15pt 或更大的半径会产生这种效果。

如果您正在寻找一个可能部分决定它是圆角的框,那么您可以轻松创建一个 class 将 DecoratedBox 包裹在 LayoutBuilder 中,以确定最短边并确定基于该长度的分数半径。