detail.dart 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import 'package:farmer_client/pages/machinery/widgets/DefLayout.dart';
  2. import 'package:farmer_client/pages/machinery/widgets/RoundButton.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:flutter/widgets.dart';
  5. import 'package:flutter_screenutil/flutter_screenutil.dart';
  6. import 'package:amap_flutter_base/amap_flutter_base.dart';
  7. import 'package:farmer_client/widgets/amap/amap.dart';
  8. import '../../../../models/entities/CardInfo.dart';
  9. import '../../widgets/summary.dart';
  10. Widget page(
  11. {required CardInfo item,
  12. required String km,
  13. required BuildContext context,
  14. VoidCallback? handleClick}) {
  15. final _offset = 20.w;
  16. final width = MediaQuery.of(context).size.width;
  17. final mapHeight = 226.5.w;
  18. final cardHeight = 250.w;
  19. final LatLng position = LatLng(32.690712, 112.091892);
  20. return DefLayout(head: AMap(position: position), children: [
  21. DefLayout.card(
  22. top: DefLayout.headHeight - DefLayout.offset,
  23. height: DefLayout.headHeight,
  24. child: Image.network(
  25. item.thumb.toString(),
  26. fit: BoxFit.cover,
  27. errorBuilder: (ctx, exception, stackTrace) {
  28. return Container(); //THE WIDGET YOU WANT TO SHOW IF URL NOT RETURN IMAGE
  29. },
  30. ),
  31. ),
  32. DefLayout.card(
  33. top: (DefLayout.headHeight - DefLayout.offset) * 2,
  34. padding:
  35. EdgeInsets.only(top: 45.w, left: 15.w, right: 15.w, bottom: 20.w),
  36. child: _content(context, handleClick, item, km)),
  37. ]);
  38. }
  39. Widget _content(
  40. BuildContext context, VoidCallback? handleClick, CardInfo item, String km) {
  41. return ListView(
  42. children: [
  43. summary(item: item, km: km),
  44. RoundButton(
  45. text: "预约",
  46. onPressed: handleClick,
  47. ),
  48. ],
  49. );
  50. }