detail.dart 2.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import 'package:carousel_slider/carousel_slider.dart';
  2. import 'package:farmer_client/pages/machinery/widgets/DefLayout.dart';
  3. import 'package:farmer_client/pages/machinery/widgets/RoundButton.dart';
  4. import 'package:flutter/widgets.dart';
  5. import 'package:flutter/material.dart';
  6. import 'package:flutter_screenutil/flutter_screenutil.dart';
  7. import 'package:farmer_client/widgets/ExtendContentList.dart';
  8. import 'package:farmer_client/models/entities/ExtendContent.dart';
  9. import 'package:get/get.dart';
  10. import '../../../../models/entities/CardInfo.dart';
  11. import '../../widgets/summary.dart';
  12. Widget page(
  13. {required BuildContext context,
  14. VoidCallback? handleClick,
  15. required String km,
  16. required CardInfo item,
  17. required List<BannerImageList> bnnerItem,
  18. required List<ContentImageList> contentItem}) {
  19. return DefLayout(
  20. head: CarouselSlider(
  21. items: bnnerItem
  22. .map((item) => Container(
  23. child: Center(
  24. child: Image.network(item.url.toString(),
  25. fit: BoxFit.fitWidth, width: 370.w)),
  26. ))
  27. .toList(),
  28. options: CarouselOptions(
  29. autoPlay: true,
  30. enlargeCenterPage: false, //图片中心放大
  31. viewportFraction: 1, //每个页面应占据的视口部分。默认为 0.8,这意味着每个页面填充 80% 的轮播。
  32. // aspectRatio: 1.6,//纵横比
  33. height: 214.w,
  34. initialPage: 1, //初始页
  35. ),
  36. ),
  37. children: [
  38. DefLayout.card(
  39. top: DefLayout.headHeight - DefLayout.offset,
  40. padding:
  41. EdgeInsets.only(top: 45.w, left: 15.w, right: 15.w, bottom: 20.w),
  42. child: _content(context, handleClick, item, contentItem, km),
  43. )
  44. ]);
  45. }
  46. Widget _content(BuildContext context, VoidCallback? handleClick, CardInfo item,
  47. List<ContentImageList> contentItem, String km) {
  48. return ListView(
  49. children: [
  50. summary(item: item, km: km),
  51. _sectionHead('农机详情'),
  52. ExtendContentList(
  53. item: contentItem,
  54. ),
  55. SizedBox(
  56. height: 20.w,
  57. ),
  58. RoundButton(
  59. text: "预约",
  60. onPressed: handleClick,
  61. )
  62. ],
  63. );
  64. }
  65. Widget _sectionHead(String title) {
  66. Widget img = SizedBox(
  67. width: 16.w,
  68. height: 16.w,
  69. child: Image.asset('images/decorate.png'),
  70. );
  71. return Container(
  72. padding: EdgeInsets.fromLTRB(0, 20.w, 0, 20.w),
  73. child: Row(
  74. mainAxisAlignment: MainAxisAlignment.center,
  75. children: [
  76. img,
  77. SizedBox(width: 20.w),
  78. Text(
  79. title,
  80. style: TextStyle(
  81. fontSize: 16.sp,
  82. color: const Color(0xFF222222),
  83. fontWeight: FontWeight.w500),
  84. ),
  85. SizedBox(width: 20.w),
  86. img,
  87. ],
  88. ),
  89. );
  90. }