import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:zhiying_base_widget/widgets/home_banner/bloc/bloc.dart'; import 'package:zhiying_base_widget/widgets/home_banner/bloc/home_banner_repository.dart'; import 'package:zhiying_base_widget/widgets/home_banner/home_banner_sk.dart'; import 'package:zhiying_comm/zhiying_comm.dart'; /// /// 不可以滚动Banner /// class HomeBannerWidget extends StatefulWidget { final Map model; const HomeBannerWidget(this.model); @override _HomeBannerWidgetState createState() => _HomeBannerWidgetState(); } class _HomeBannerWidgetState extends State { @override Widget build(BuildContext context) { return BlocProvider( create: (_) => HomeBannerBloc(repository: HomeBannerRepository())..add(HomeBannerInitEvent(widget.model)), child: HomeBannerContainer( model: widget.model, ), ); } } class HomeBannerContainer extends StatefulWidget { final Map model; const HomeBannerContainer({@required this.model}); @override _HomeBannerContainerState createState() => _HomeBannerContainerState(); } class _HomeBannerContainerState extends State { @override Widget build(BuildContext context) { return BlocConsumer( listener: (context, state) {}, buildWhen: (previous, current) { if (current is HomeBannerErrorState) { return false; } return true; }, builder: (context, state) { print(state); if (state is HomeBannerLoadedState) { return ItemWidget(data: [1,2,3],); } if (state is HomeBannerCacheState) { return ItemWidget(data: [1,2],); } return HomeBannerSkeleton(widget.model); }, ); } } class ItemWidget extends StatelessWidget { final List data; ItemWidget({this.data}); @override Widget build(BuildContext context) { return Container( height: 180.h, margin: EdgeInsets.only(top: 7.5, left: 2.5, right: 2.5), child: Row( children:data.map((index){ return Flexible( flex: 1, child: Container( margin: EdgeInsets.only( left: 5, right: 5), decoration: BoxDecoration( color: Colors.lightBlue, borderRadius: BorderRadius.circular(7.5) ), ), ); }).toList(), ), ); } }