Flutter 绘制部分圆形矩形边框

Flutter 绘制部分圆形矩形边框,flutter,dart,widget,Flutter,Dart,Widget,我希望能够在子部件周围绘制部分圆形矩形边框:仅左侧、顶部和右侧;只有左侧、底部和右侧;等等此函数非常接近于实现我想要的功能: Widget roundRectBorderTop(Widget child, Color color, double cornerRadius, [double borderWidth = 1.0]) { final side = BorderSide(color:color, width:borderWidth); final bord = Bord

我希望能够在子部件周围绘制部分圆形矩形边框:仅左侧、顶部和右侧;只有左侧、底部和右侧;等等此函数非常接近于实现我想要的功能:

Widget roundRectBorderTop(Widget child, Color color, double cornerRadius,
 [double borderWidth = 1.0])
{
    final side = BorderSide(color:color, width:borderWidth);
    final bord = Border(left:side, top:side, right:side);
    final radi = BorderRadius.circular(cornerRadius);
    final data = BoxDecoration(border:bord, borderRadius:radi);
    return DecoratedBox(child:child, decoration:data);
}
唉,当我运行此程序时,它会随着以下断言而消亡:

flutter: The following assertion was thrown during paint():
flutter: A borderRadius can only be given for uniform borders.
flutter: 'package:flutter/src/painting/box_border.dart':
flutter: Failed assertion: line 510 pos 12: 'borderRadius == null'
如果我从BoxEdition对象中删除borderRadius:参数,那么代码“有效”,但它绘制的是直角角,而不是圆形的矩形角,这正是我想要的


有人知道如何解决这个问题吗?

您可以通过使用
边界半径来简化。只有
用于装饰
容器

容器(
装饰:盒子装饰(
颜色:颜色,白色,
borderRadius:仅限borderRadius(
左上:半径。圆形(20.0),
右上角:半径。圆形(20.0),
)
),
孩子:。。。
)
下面截图的完整工作代码

导入“包装:颤振/材料.省道”;
void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“颤振演示”,
主题:主题数据(
主样本:颜色。蓝色,
),
家:脚手架(
appBar:appBar(
标题:文本(“圆角演示”),
),
正文:中(
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
容器(
装饰:盒子装饰(
颜色:颜色,红色,
borderRadius:仅限borderRadius(
左上:半径。圆形(20.0),
右上角:半径。圆形(20.0),
),
),
填充:所有边缘设置(20.0),
子项:文本(“圆角”),
),
],
),
),
),
);
}
}

你真的试过这个吗?因为我这样做了,而且它也失败了,因为有一个类似的断言。在发布问题之前,我尝试了一些非常类似的方法,但我没有提及它,因为它没有帮助。嗨,是的,我做了一个小演示。用完整的代码更新了我的初始答案,我希望它有帮助,我希望我得到了您试图解决的问题。@Erapkaraduman的代码运行良好。这是正确的答案。