flutter框架绘制虚线问题方法
谷歌推出的flutter框架,实现了APP开发大发展。经过这两年的洗礼,越来越多的企业开始选择flutter来开发APP,对于开发者来说是一个新的机遇。但是毕竟只有很短的时间,所以在一些UI组件上还是有着极个别的瑕疵,比如绘制虚线的问题是一个很让人头疼,那么目前比较好的绘制虚线的方法是什么,笔者为大家提供了下面方法:...
·
谷歌推出的flutter框架,实现了APP开发大发展。经过这两年的洗礼,越来越多的企业开始选择flutter来开发APP,对于开发者来说是一个新的机遇。
但是毕竟只有很短的时间,所以在一些UI组件上还是有着极个别的瑕疵,比如绘制虚线的问题是一个很让人头疼,那么目前比较好的绘制虚线的方法是什么,笔者为大家提供了下面方法:
虚线效果
实现方案
定义分割线
class MySeparator extends StatelessWidget {
final double height;
final Color color;
const MySeparator({this.height = 1, this.color = Colors.black});
@override
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) {
final boxWidth = constraints.constrainWidth();
final dashWidth = 10.0;
final dashHeight = height;
final dashCount = (boxWidth / (2 * dashWidth)).floor();
return Flex(
children: List.generate(dashCount, (_) {
return SizedBox(
width: dashWidth,
height: dashHeight,
child: DecoratedBox(
decoration: BoxDecoration(color: color),
),
);
}),
mainAxisAlignment: MainAxisAlignment.spaceBetween,
direction: Axis.horizontal,
);
},
);
}
}
使用 const MySeparator()
class App extends StatelessWidget {
const App();
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Material(
child: Container(
color: Colors.blue,
child: Center(
child: Container(
height: 600, width: 350,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(Radius.circular(16.0)),
),
child: Flex(
direction: Axis.vertical,
children: [
Expanded(child: Container()),
const MySeparator(color: Colors.grey),
Container(height: 200),
],
),
),
),
),
),
);
}
}
更多推荐
已为社区贡献4条内容
所有评论(0)