import 'package:carousel_slider/carousel_slider.dart'; import 'package:didvan/widgets/didvan/card.dart'; import 'package:flutter/material.dart'; class DidvanPageView extends StatelessWidget { final List pages; final ScrollController? scrollController; final int initialPage; final void Function(int index) onPageChanged; const DidvanPageView({ Key? key, required this.pages, this.scrollController, required this.onPageChanged, this.initialPage = 2, }) : super(key: key); @override Widget build(BuildContext context) { final double deviceTopPadding = MediaQuery.of(context).padding.top; return CarouselSlider.builder( itemCount: pages.length, options: CarouselOptions( onPageChanged: (index, reason) => onPageChanged(index), height: double.infinity, initialPage: 2, viewportFraction: 0.94, enableInfiniteScroll: false, ), itemBuilder: (context, index, realIndex) => SizedBox( height: MediaQuery.of(context).size.height, child: SingleChildScrollView( controller: index == 2 ? scrollController : null, physics: const BouncingScrollPhysics(), padding: EdgeInsets.only( left: 4, right: 4, top: 16 + deviceTopPadding, bottom: 92, ), child: DidvanCard( padding: EdgeInsets.zero, enableBorder: false, child: pages[index], ), ), ), ); } }