detail.dart 2.7KB

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