内容转载自:CSDN博主【老孟Flutter】
![18486b21392579b4e8a072a0e12e8668.png](https://i-blog.csdnimg.cn/blog_migrate/1f842b717cecd559b3ea8bd9cb710f4c.jpeg)
老孟导读:Flutter中很多组件都有一个叫做shape的属性,类型是ShapeBorder,比如Button类、Card等组件,shape表示控件的形状,系统已经为我们提供了很多形状,对于没有此属性的组件,可以使用 Clip 类组件进行裁剪。
BeveledRectangleBorder
斜角矩形边框,用法如下:
RaisedButton( shape: BeveledRectangleBorder( side: BorderSide(width: 1, color: Colors.red), borderRadius: BorderRadius.circular(10)), child: Text('老孟'), onPressed: () {},)123456
![3c062909209ab51ef91a378b3fb1adce.png](https://i-blog.csdnimg.cn/blog_migrate/117dd955f99cdb2c4196629145c58fd5.jpeg)
如果设置的半径比控件还大,就会变成菱形:
3RaisedButton( shape: BeveledRectangleBorder( side: BorderSide(width: 1, color: Colors.red), borderRadius: BorderRadius.circular(100)), child: Text('老孟'), onPressed: () {},)123456
![c250a8b4f5e065b90bd7592486bb103e.png](https://i-blog.csdnimg.cn/blog_migrate/60b6da5e50189fc52379f37b2582b3e4.jpeg)
同理,如果半径设置为0,就是矩形。
RaisedButton( shape: BeveledRectangleBorder( side: BorderSide(width: 1, color: Colors.red), borderRadius: BorderRadius.circular(0)), child: Text('老孟'), onPressed: () {},)123456
![2c515698e866fcb27b8e94d04a65ae2e.png](https://i-blog.csdnimg.cn/blog_migrate/5be648e80f653f01f14333600669c927.jpeg)
Border
Border允许单独设置每一个边上的线条样式.
RaisedButton( shape: Border( top: BorderSide(color: Colors.red,width: 2) ), child: Text('老孟'), onPressed: () {},)123456
![e5f23912e59d88c3196240c5c18c3e15.png](https://i-blog.csdnimg.cn/blog_migrate/b54cb24f00b0ef397e97edb08eda4620.jpeg)
设置全部
RaisedButton( shape: Border( top: BorderSide(color: Colors.red,width: 10), right: BorderSide(color: Colors.blue,width: 10), bottom: BorderSide(color: Colors.yellow,width: 10), left: BorderSide(color: Colors.green,width: 10), ), child: Text('老孟'), onPressed: () {}, )123456789
![67cb5b09a02e80469b147cd1cf29bb00.png](https://i-blog.csdnimg.cn/blog_migrate/7c4c1afb08c0d7fbd12c2f0ec8af615c.jpeg)