[英]How to draw a line with a pointed triangle in Flutter?
Its easy, just you need to understand how to use clippers.很简单,只需要了解如何使用快船。
Here is how:方法如下:
u need to use ClipPath
你需要使用
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,
),
)
],
)),
);
}
And add your custom clipper:并添加您的自定义剪辑器:
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;
}
Thats it you will get the same result.就是这样,您将得到相同的结果。
That's it而已
ClipPath(
clipper: ClipperStack(),
child: Container(
height: 100,
color: Colors.pink,
child: Center(child: Text("DOWNLOAD")),
),
),
class ClipperStack extends CustomClipper<Path> {
@override
Path getClip(Size size) {
Path path = Path();
path.moveTo(0.0, 0.0);
path.lineTo(0.0, size.height-10);
path.lineTo((size.width / 2 )-5, size.height-10);
path.lineTo(size.width / 2, size.height);
path.lineTo((size.width / 2)+5, size.height-10);
path.lineTo(size.width, size.height-10);
path.lineTo(size.width, 0.0);
return path;
}
@override
bool shouldReclip(CustomClipper<Path> oldClipper) => true;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.