如何在 Flutter 中用尖三角形画一条线?

Pan*_*dhu 4 flutter flutter-layout

我正在考虑实施以下设计。

在此处输入图片说明

如何在上图中实现线上的三角形凹凸?我是扑扑的新手,对如何开始这件事一无所知。

Sah*_*ngh 7

很简单,您只需要了解如何使用剪刀即可。

这是如何:

你需要使用 ClipPath


  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.lightGreen,
      appBar: AppBar(
        title: Text("test"),
        backgroundColor: Colors.deepOrange,
      ),
      body: Center(
          child: Column(
            mainAxisSize: MainAxisSize.min,
        mainAxisAlignment: MainAxisAlignment.center,
        crossAxisAlignment: CrossAxisAlignment.center,
        children: <Widget>[
          Container(
            width: double.infinity,
            height: 200,
            color: Colors.red,
            child: Center(
              child: Text("Download"),
            ),
          ),
          ClipPath(
            clipper: TriangleClipper(),
            child: Container(
              color: Colors.red,
              height: 10,
              width: 20,
            ),
          )
        ],
      )),
    );
  }
Run Code Online (Sandbox Code Playgroud)

并添加您的自定义剪刀:

class TriangleClipper extends CustomClipper<Path> {
  @override
  Path getClip(Size size) {
    final path = Path();
    path.lineTo(size.width, 0.0);
    path.lineTo(size.width / 2, size.height);
    path.close();
    return path;
  }

  @override
  bool shouldReclip(TriangleClipper oldClipper) => false;
}
Run Code Online (Sandbox Code Playgroud)

就是这样,您将获得相同的结果。