detail.dart 4.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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 CardInfo item,required List<BannerImageList> bnnerItem,required List<ContentImageList> contentItem}) {
  13. print('88888888888888+$item');
  14. final img = 'https://yz-websit.oss-cn-hangzhou.aliyuncs.com/xlk/index-icon19.jpg';
  15. final list = <ExtendContent>[
  16. ExtendContent.simple(content: img, contentType: "image" ),
  17. ExtendContent.simple(content: "有时,你可能想要创建一个水平滑动(而不是竖直滑动)的列表。 ListView widget 本身就支持水平列表的创建。我们将会使用标准的 ListView 构造方法,通过指定 scrollDirection 的值为水平方向,来覆盖默认的竖直方向。", contentType: "text" ),
  18. ExtendContent.simple(content: img, contentType: "image" ),
  19. ExtendContent.simple(content: "有时,你可能想要创建一个水平滑动(而不是竖直滑动)的列表。 ListView widget 本身就支持水平列表的创建。我们将会使用标准的 ListView 构造方法,通过指定 scrollDirection 的值为水平方向,来覆盖默认的竖直方向。", contentType: "text" ),
  20. ExtendContent.simple(content: img, contentType: "image" ),
  21. ExtendContent.simple(content: "有时,你可能想要创建一个水平滑动(而不是竖直滑动)的列表。 ListView widget 本身就支持水平列表的创建。我们将会使用标准的 ListView 构造方法,通过指定 scrollDirection 的值为水平方向,来覆盖默认的竖直方向。", contentType: "text" ),
  22. ExtendContent.simple(content: img, contentType: "image" ),
  23. ];
  24. return DefLayout(
  25. head: CarouselSlider(
  26. items: bnnerItem
  27. .map((item) => Container(
  28. child: Center(
  29. child: Image.network(item.url.toString(),
  30. fit: BoxFit.fitWidth, width: 370.w)),
  31. ))
  32. .toList(),
  33. options: CarouselOptions(
  34. autoPlay: true,
  35. enlargeCenterPage: false, //图片中心放大
  36. viewportFraction: 1, //每个页面应占据的视口部分。默认为 0.8,这意味着每个页面填充 80% 的轮播。
  37. // aspectRatio: 1.6,//纵横比
  38. height: 214.w,
  39. initialPage: 1, //初始页
  40. ),
  41. ),
  42. children: [
  43. DefLayout.card(
  44. top: DefLayout.headHeight - DefLayout.offset,
  45. padding: EdgeInsets.only(top: 45.w, left: 15.w, right: 15.w, bottom: 20.w),
  46. child: _content(context, handleClick,item,contentItem),
  47. )
  48. ]
  49. );
  50. }
  51. Widget _content(BuildContext context, VoidCallback? handleClick, CardInfo item,List<ContentImageList> contentItem) {
  52. return Column(
  53. children: [
  54. summary(item: item),
  55. _sectionHead('农机详情'),
  56. ExtendContentList(item: contentItem,),
  57. SizedBox(height: 20.w,),
  58. RoundButton(text: "预约", onPressed: handleClick,)
  59. ],
  60. );
  61. }
  62. Widget _sectionHead(String title) {
  63. Widget img = SizedBox(
  64. width: 16.w,
  65. height: 16.w,
  66. child: Image.asset('images/decorate.png'),
  67. );
  68. return Container(
  69. padding: EdgeInsets.fromLTRB(0, 20.w, 0, 20.w),
  70. child: Row(
  71. mainAxisAlignment: MainAxisAlignment.center,
  72. children: [
  73. img,
  74. SizedBox(width: 20.w),
  75. Text(title, style: TextStyle(fontSize: 16.sp, color: const Color(0xFF222222), fontWeight: FontWeight.w500),),
  76. SizedBox(width: 20.w),
  77. img,
  78. ],
  79. ),
  80. );
  81. }