123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- import 'package:carousel_slider/carousel_slider.dart';
- import 'package:farmer_client/pages/machinery/widgets/DefLayout.dart';
- import 'package:farmer_client/pages/machinery/widgets/RoundButton.dart';
- import 'package:flutter/widgets.dart';
- import 'package:flutter/material.dart';
- import 'package:flutter_screenutil/flutter_screenutil.dart';
- import 'package:farmer_client/widgets/ExtendContentList.dart';
- import '../../../../models/entities/CardInfo.dart';
- import '../../widgets/summary.dart';
-
- Widget page(
- {required BuildContext context,
- VoidCallback? handleClick,
- required String km,
- required CardInfo item,
- required List<BannerImageList> bnnerItem,
- required List<ContentImageList> contentItem}) {
- return DefLayout(
- head: CarouselSlider(
- items: bnnerItem
- .map((item) => Center(
- child: Image.network(item.url.toString(),
- fit: BoxFit.fitWidth, width: 370.w)))
- .toList(),
- options: CarouselOptions(
- autoPlay: true,
- enlargeCenterPage: false, //图片中心放大
- viewportFraction: 1, //每个页面应占据的视口部分。默认为 0.8,这意味着每个页面填充 80% 的轮播。
- // aspectRatio: 1.6,//纵横比
- height: 214.w,
- initialPage: 1, //初始页
- ),
- ),
- children: [
- DefLayout.card(
- top: DefLayout.headHeight - DefLayout.offset,
- padding:
- EdgeInsets.only(top: 45.w, left: 15.w, right: 15.w, bottom: 20.w),
- child: _content(context, handleClick, item, contentItem, km),
- )
- ]);
- }
-
- Widget _content(BuildContext context, VoidCallback? handleClick, CardInfo item,
- List<ContentImageList> contentItem, String km) {
- return ListView(
- children: [
- summary(item: item, km: km),
- _sectionHead('农机详情'),
- ExtendContentList(
- item: contentItem,
- ),
- SizedBox(
- height: 20.w,
- ),
- RoundButton(
- text: "预约",
- onPressed: handleClick,
- )
- ],
- );
- }
-
- Widget _sectionHead(String title) {
- Widget img = SizedBox(
- width: 16.w,
- height: 16.w,
- child: Image.asset('images/decorate.png'),
- );
-
- return Container(
- padding: EdgeInsets.fromLTRB(0, 20.w, 0, 20.w),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- img,
- SizedBox(width: 20.w),
- Text(
- title,
- style: TextStyle(
- fontSize: 16.sp,
- color: const Color(0xFF222222),
- fontWeight: FontWeight.w500),
- ),
- SizedBox(width: 20.w),
- img,
- ],
- ),
- );
- }
|