سلام من مطابق فیلم رفتم ولی sliderها عوض نمیشوند
مجدد دوباره این قسمت scroll نمیشه و همون مشکل داره ممنون میشم کمک کنید
سلام و درود
لطفا یک ویدیو از مشکل خودتون به همراه سورس کامل جهت بررسی ارسال کنید.
import 'package:cached_network_image/cached_network_image.dart'; import 'package:f6_nike/common/utils.dart'; import 'package:f6_nike/data/banner.dart'; import 'package:f6_nike/data/repo/banner_repository.dart'; import 'package:f6_nike/data/repo/product_repository.dart'; import 'package:f6_nike/product.dart'; import 'package:f6_nike/ui/home/bloc/home_bloc.dart'; import 'package:f6_nike/ui/widgets/image.dart'; import 'package:f6_nike/ui/widgets/slider.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; class HomeScreen extends StatelessWidget { const HomeScreen({super.key}); @override Widget build(BuildContext context) { return BlocProvider( create: (context) { final homeBloc = HomeBloc( bannerRepository: bannerRepository, productRepository: productRepository); homeBloc.add(HomeStarted()); return homeBloc; }, child: Scaffold( body: SafeArea( child: BlocBuilder<HomeBloc, HomeState>(builder: ((context, state) { if (state is HomeSuccess) { return ListView.builder( itemCount: 5, itemBuilder: (context, index) { switch (index) { case 0: return Container( height: 56, alignment: Alignment.center, child: Image.asset( 'assets/img/nike_logo.png', fit: BoxFit.fitHeight, height: 24, ), ); case 2: return BannerSlider( banners: state.banners, ); case 3: return _HorizontalProductList( title: 'جدید ترین', onTap: () {}, products: state.latestProduct, ); case 4: return _HorizontalProductList( title: 'جدید ترین', onTap: () {}, products: state.popularProduct, ); default: return Container(); } }); } else if (state is HomeLoading) { return const Center(child: CircularProgressIndicator()); } else if (state is HomeError) { return Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ Text(state.exception.message), ElevatedButton( onPressed: () { BlocProvider.of<HomeBloc>(context).add(HomeRefresh()); }, child: const Text('تلاش دوباره')) ], ), ); } else { throw Exception('satae is not supported'); } })), ), ), ); } } class _HorizontalProductList extends StatelessWidget { final String title; final GestureTapCallback onTap; final List<ProductEntity> products; const _HorizontalProductList({ super.key, required this.title, required this.onTap, required this.products, }); @override Widget build(BuildContext context) { return Column( children: [ Padding( padding: const EdgeInsets.only(left: 12, right: 12), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( title, style: Theme.of(context).textTheme.titleMedium, ), TextButton(onPressed: onTap, child: const Text('مشاهده همه')) ], ), ), SizedBox( height: 322, child: ListView.builder( itemCount: products.length, scrollDirection: Axis.horizontal, padding: const EdgeInsets.only(left: 8, right: 8), itemBuilder: ((context, index) { final product = products[index]; return Padding( padding: const EdgeInsets.all(4.0), child: SizedBox( width: 196, child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Stack( children: [ SizedBox( width: 176, height: 189, child: ImageLodingService( imageUrl: product.imageUrl, borderRadius: BorderRadius.circular(12), ), ), Positioned( right: 8, top: 8, child: Container( width: 32, height: 32, alignment: Alignment.center, decoration: const BoxDecoration( shape: BoxShape.circle, color: Colors.white, ), child: const Icon( CupertinoIcons.heart, size: 20, ), ), ) ], ), Padding( padding: const EdgeInsets.all(8.0), child: Text( product.title, maxLines: 1, overflow: TextOverflow.ellipsis, ), ), Padding( padding: const EdgeInsets.only(right: 8, left: 8), child: Text( product.previousPrice.withPriceLable, style: Theme.of(context) .textTheme .bodySmall! .copyWith( decoration: TextDecoration.lineThrough), ), ), Padding( padding: const EdgeInsets.only( right: 8, left: 8, top: 8), child: Text(product.price.withPriceLable), ) ], ), )); })), ) ], ); } }
سلام مجدد
خانم مسلمی در تصویر قبلی که ارسال کردین مشکلی دیده نمیشه اما شما اظهار دارین در اسکرول کردن مشکل دارین لطفا یک ویدیو از مشکلی که دارین تهیه کنید تا بتونم برای رفع اون کمک تون کنم.