飞镖中的响应容器圆角

Posted

技术标签:

【中文标题】飞镖中的响应容器圆角【英文标题】:Responsive container round corners in dart 【发布时间】:2020-05-25 21:52:54 【问题描述】:

我在想,在 Dart/Flutter 中,你能不能在下一行插入一个半径的响应值而不是这个固定值

topLeft: Radius.circular(20.0)

我希望我能做类似的事情:

topLeft: Radius.circular(SOME SECRET CODE HERE JUST LIKE MEDIAQUERY THING THAT GETS RATIO FROM SCREEN SIZE)

我在

中使用过MediaQuery
 body: Container(
        width: MediaQuery.of(context).size.height * 0.4,
        height: MediaQuery.of(context).size.height * 0.6,
),

它完美地给了我绘制容器相对于屏幕尺寸的这些比率,所以我需要圆角来继承特定的比率,就像宽度和高度一样。

【问题讨论】:

【参考方案1】:

您可以创建一些变量来保存角落的计算值,然后使用 setState 来重建屏幕。因此容器将使用新值重建。

double leftCornerRadius = 0.0;
//calculate the corner and setstate
setState()
  leftCornerRadius = 15.0;

//and on the container user the variable
topLeft: Radius.circular(leftCornerRadius)

因此,每次使用 setState 重新计算半径时,都会更改小部件上的半径。 希望我能帮上忙。

【讨论】:

感谢 Jorge 其实我不知道为什么我需要 setState,只需要像这样定义变量 double leftCornerRadius = MediaQuery.of(context).size.height * 0.5; 然后在像这样的对象中使用它 topLeft: Radius.circular(leftCornerRadius) 它完美地完成了这项工作! @RagehElAzzazy 嘿,很好用,如果您需要在运行时更改它,您只需要 setState,如果您只需要计算一次,则不需要 setState。 ;)

以上是关于飞镖中的响应容器圆角的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 圆角矩形中的阴影

将 ison 转换为可读的飞镖

飞镖中的构造函数[重复]

颤振/飞镖中的元组列表

如何取消颤振/飞镖集团中的“等待”

无法解析颤振/飞镖中的文件