line.dart 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import 'package:fis_lib_report/converts/pt_to_px_converter.dart';
  2. import 'package:fis_lib_report/pages/helpler.dart';
  3. import 'package:fis_lib_report/report/line.dart';
  4. import 'package:fis_lib_report/report/rt_thickness.dart';
  5. import 'package:flutter/cupertino.dart';
  6. import 'package:flutter/material.dart';
  7. class RLine extends StatefulWidget {
  8. final Line line;
  9. RLine(this.line);
  10. @override
  11. State<StatefulWidget> createState() {
  12. return _LineState(line);
  13. }
  14. }
  15. class _LineState extends State<RLine> {
  16. final Line line;
  17. _LineState(this.line);
  18. @override
  19. initState() {
  20. ///TODO(Loki):设置虚线or实线
  21. final borderStyle = line.borderStyle;
  22. super.initState();
  23. }
  24. @override
  25. Widget build(BuildContext context) {
  26. final stroke = line.stroke!;
  27. final a = stroke.a!;
  28. final r = stroke.r!;
  29. final g = stroke.g!;
  30. final b = stroke.b!;
  31. final margin = line.margin ?? RTThickness.uniform(0);
  32. return Container(
  33. height: 10, //TODO(Loki):这里的Height在Json中没有
  34. alignment: Alignment.center,
  35. margin: EdgeInsets.only(
  36. top: margin.top!,
  37. bottom: margin.bottom!,
  38. right: margin.left!,
  39. left: margin.left!),
  40. width: PtToPxConverter.ptToPx(line.width),
  41. child: Divider(
  42. height: line.thickness,
  43. thickness: line.thickness,
  44. color: Color.fromARGB(a, r, g, b),
  45. ),
  46. );
  47. }
  48. }