searchBannerHeader.dart 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import 'package:carousel_slider/carousel_slider.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:flutter_easyloading/flutter_easyloading.dart';
  4. import 'package:flutter_screenutil/flutter_screenutil.dart';
  5. import '../../../../../models/entities/Banners.dart';
  6. import '../../../../../services/homeAPI.dart';
  7. import 'headers.dart';
  8. class searchBannerHeader extends StatefulWidget {
  9. const searchBannerHeader({Key? key}) : super(key: key);
  10. @override
  11. State<searchBannerHeader> createState() => _searchBannerHeaderState();
  12. }
  13. class _searchBannerHeaderState extends State<searchBannerHeader> {
  14. List<Banners> bannerList = [];
  15. @override
  16. void initState() {
  17. super.initState();
  18. // final long= location.value!['longitude'].toString() + "," + location.value!['latitude'].toString();
  19. // print('location+$location,lolongglongng+$long');
  20. getHomeBanner('banner').then((value) {
  21. EasyLoading.show(status: '数据加载中...');
  22. setState(() {
  23. value.forEach((item) {
  24. bannerList.add(Banners.fromJson(item));
  25. });
  26. });
  27. EasyLoading.dismiss();
  28. });
  29. }
  30. @override
  31. Widget build(BuildContext context) {
  32. return Column(
  33. children: [
  34. SizedBox(
  35. child: TypeHeader(
  36. type: true,
  37. ),
  38. ),
  39. Container(
  40. margin: EdgeInsets.fromLTRB(0, 15, 0, 0),
  41. child: CarouselSlider(
  42. items: bannerList
  43. .map((item) => Container(
  44. child: Center(
  45. child: Image.network(
  46. item.thumb.toString(),
  47. fit: BoxFit.cover,
  48. width: 350.w)),
  49. ))
  50. .toList(),
  51. options: CarouselOptions(
  52. autoPlay: true,
  53. enlargeCenterPage: false, //图片中心放大
  54. viewportFraction:
  55. 1, //每个页面应占据的视口部分。默认为 0.8,这意味着每个页面填充 80% 的轮播。
  56. // aspectRatio: 1.6,//纵横比
  57. height: 214.w,
  58. initialPage: 1, //初始页
  59. ),
  60. ),
  61. ),
  62. ],
  63. );
  64. }
  65. }