detail.dart 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. width:375.w,
  27. fit: BoxFit.cover,
  28. errorBuilder: (ctx, exception, stackTrace) {
  29. return Container(); //THE WIDGET YOU WANT TO SHOW IF URL NOT RETURN IMAGE
  30. },
  31. ),
  32. ),
  33. DefLayout.card(
  34. top: (DefLayout.headHeight - DefLayout.offset) * 2,
  35. padding:
  36. EdgeInsets.only(top: 45.w, left: 15.w, right: 15.w, bottom: 20.w),
  37. child: _content(context, handleClick, item, km)),
  38. ]);
  39. }
  40. Widget _content(
  41. BuildContext context, VoidCallback? handleClick, CardInfo item, String km) {
  42. return ListView(
  43. children: [
  44. summary(item: item, km: km),
  45. RoundButton(
  46. text: "预约",
  47. onPressed: handleClick,
  48. ),
  49. ],
  50. );
  51. }