【问题标题】:How to create a custom slanted edge for button?如何为按钮创建自定义倾斜边缘?
【发布时间】:2020-03-06 19:13:34
【问题描述】:

我有一个按钮,但边缘是这样倾斜的。

我尝试使用Container的BoxDecorationBorderRadius根据设计创建边框,但不是很准确。

final BorderRadius firstButtonBorder = BorderRadius.only(
  topRight: Radius.elliptical(3, 60),
  topLeft: Radius.elliptical(3, 60),
  bottomLeft: Radius.elliptical(3, 60),
  bottomRight: Radius.elliptical(3, 60),
);

如何创建按钮以使边缘与第一张图片完全相同?我需要使用自定义画家或其他东西吗?此外,按钮还需要能够指定自定义宽度。

谢谢!

【问题讨论】:

    标签: flutter


    【解决方案1】:

    您需要将剪贴路径小部件用作子小部件。将容器嵌套在其中。

    child:ClipPath(
      child:Container(),
      clipper: CustomClips()
    )
    class CustomClips extends CustomClipper<Path>{
      @override
      Path getClip(Size size) {
        Path path = Path();
        path.lineTo(size.width / 12, size.height);
        path.lineTo(size.width, 0.0);
        return path;
      }
      @override
      bool shouldReclip(CustomClipper<Path> oldClipper) => false;
    }
    

    【讨论】:

    • @Zerocchi 如果此方法或 path.lineTo() 的变体适合您,请接受它作为答案。
    • 我回到工作场所后会尝试你的方法。谢谢!
    猜你喜欢
    • 2015-06-07
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    • 2017-08-22
    相关资源
    最近更新 更多