index.dart 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. import 'package:carousel_slider/carousel_slider.dart';
  2. import 'package:farmer_client/pages/TabBar/widgets/home/widgets/headers.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:flutter_screenutil/flutter_screenutil.dart';
  5. import 'package:get/get.dart';
  6. import 'package:get/get_core/src/get_main.dart';
  7. import '../../../../models/entities/banner.dart';
  8. import '../../../../services/homeAPI.dart';
  9. import '../../../../widgets/CarsCard.dart';
  10. import '../../../../widgets/Search.dart';
  11. import '../../../MoreCars/index.dart';
  12. class HomePage extends StatefulWidget {
  13. const HomePage({Key? key}) : super(key: key);
  14. @override
  15. State<HomePage> createState() => _HomePageState();
  16. }
  17. class _HomePageState extends State<HomePage> {
  18. final CarouselController _controller = CarouselController();
  19. List<banner> BannerList = [];
  20. @override
  21. void initState() {
  22. super.initState();
  23. getHomeBanner('banner').then((value) {
  24. setState(() {
  25. value.forEach((item) {
  26. BannerList.add(banner.fromJson(item));
  27. });
  28. });
  29. });
  30. }
  31. @override
  32. Widget build(BuildContext context) {
  33. return Container(
  34. alignment: Alignment.center,
  35. padding: EdgeInsets.fromLTRB(15.w, 0, 15.w, 0),
  36. child: ListView(
  37. children: [
  38. Container(
  39. width: 20.w,
  40. child: TypeHeader(
  41. type: true,
  42. ),
  43. ),
  44. Container(
  45. margin: EdgeInsets.fromLTRB(0, 15, 0, 0),
  46. child:
  47. // Text('asdasdas')
  48. CarouselSlider(
  49. items: BannerList.map((item) => Container(
  50. child: Center(
  51. child: Image.network(item.thumb.toString(),
  52. fit: BoxFit.cover, width: 350.w)),
  53. )).toList(),
  54. options: CarouselOptions(
  55. autoPlay: true,
  56. enlargeCenterPage: false, //图片中心放大
  57. viewportFraction: 1, //每个页面应占据的视口部分。默认为 0.8,这意味着每个页面填充 80% 的轮播。
  58. // aspectRatio: 1.6,//纵横比
  59. height: 214.w,
  60. initialPage: 1, //初始页
  61. ),
  62. ),
  63. ),
  64. Container(
  65. margin: EdgeInsets.fromLTRB(0, 20, 0, 20),
  66. child: Column(
  67. children: [
  68. Row(
  69. mainAxisAlignment: MainAxisAlignment.spaceBetween,
  70. children: [
  71. Container(
  72. child: Row(
  73. children: [
  74. Padding(
  75. padding: EdgeInsets.fromLTRB(0, 0, 8, 0),
  76. child: Image(
  77. image:
  78. AssetImage('images/icons/carsListImga.png'),
  79. fit: BoxFit.cover,
  80. width: 20.w,
  81. ),
  82. ),
  83. Text(
  84. '农机列表',
  85. style: TextStyle(
  86. color: Color(0xff222222),
  87. fontSize: 20.sp,
  88. fontWeight: FontWeight.bold),
  89. )
  90. ],
  91. ),
  92. ),
  93. Container(
  94. child: GestureDetector(
  95. child: Text('更多 >>'),
  96. onTap: () {
  97. print('点我进入农机搜索/更多页');
  98. Get.to(MoreCars());
  99. },
  100. ),
  101. )
  102. ],
  103. ),
  104. CarsCard(),
  105. CarsCard(),
  106. CarsCard(),
  107. ],
  108. )),
  109. ],
  110. ),
  111. );
  112. }
  113. }