flutter - Flutter Dart-如何使容器具有向外的borderRadius.circular(20)而不是向内的?

标签 flutter dart

enter image description here

为我的Container borderRadius。我目前正在使用borderRadius: BorderRadius.all(Radius.circular(20))。我想要替代它的内部,而不是像三角形的东西那样增加到外部的边框,而不是带走三角形的东西。

最佳答案

您可以使用自定义的ClipperPath轻松完成此操作。

定义一个自定义的ClipperPath,如下所示。

  class CustomClipPath extends CustomClipper<Path> {
  final radius = 10.0;
  final arcHeight = 50.0;
  @override
  Path getClip(Size size) {
    final path = Path();
    path.lineTo(size.width, 0.0);
    path.lineTo(size.width, size.height);
    path.arcToPoint(Offset(size.width, size.height - arcHeight),
        radius: Radius.circular(radius));
    path.lineTo(size.width, size.height - arcHeight / 2);
    path.lineTo(0, size.height - arcHeight / 2);
    path.lineTo(0,size.height- arcHeight);
     path.arcToPoint(Offset(0, size.height),
        radius: Radius.circular(radius));

    path.close();
    return path;
  }

  @override
  bool shouldReclip(CustomClipper<Path> oldClipper) => false;
}

然后,您可以将其应用于如下所示的任何容器。
 ClipPath(
          child: Container(
            width: MediaQuery.of(context).size.width,
            height: 200,
            alignment:Alignment.center,
            color: Colors.blue,
          ),
          clipper: CustomClipPath(),
        )

enter image description here

我正在Dartpad上分享现场演示,找到它here

关于flutter - Flutter Dart-如何使容器具有向外的borderRadius.circular(20)而不是向内的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61112046/

相关文章:

flutter - 如何在flutter中使用tabbar作为底部导航栏?

dart - 如何在 Flutter 中使文本围绕图像 float ?

ios - Flutter - 如何在没有用户交互的情况下推送到其他路由(如 onTap)?

android - 如何在Flutter中创建Stream Provider

Dart 聚合物自定义元素动态链接

json - Flutter 使用来自 Golang RFC3339 的 DateTime 解析 json : FormatException: Invalid date format

flutter - flutter : flutter 1.22更新后,我在Lineargradient属性中遇到错误

firebase - 如何调用功能ASA应用程序在运行中运行?

android - 如何在 Flutter SharedPreferences 中访问 iOS UserDefaults 存储的数据

api - 来自 Flutter 中的 PHP 的 API 流(不是 Firebase)