import 'package:didvan/pages/home/home_state.dart'; import 'package:didvan/pages/home/news/news.dart'; import 'package:didvan/pages/home/profile/profile.dart'; import 'package:didvan/pages/home/radar/radar.dart'; import 'package:didvan/pages/home/radar/radar_state.dart'; import 'package:didvan/pages/home/statistics/statistics.dart'; import 'package:didvan/pages/home/studio/studio.dart'; import 'package:didvan/pages/home/widgets/didvan_bnb.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; class Home extends StatefulWidget { const Home({Key? key}) : super(key: key); @override State createState() => _HomeState(); } class _HomeState extends State with SingleTickerProviderStateMixin { late final TabController _tabController; @override void initState() { _tabController = TabController(length: 5, vsync: this); _tabController.addListener(() { context.read().currentPageIndex = _tabController.index; }); super.initState(); } @override Widget build(BuildContext context) { return Scaffold( body: DefaultTabController( length: 5, child: TabBarView( physics: const BouncingScrollPhysics(), controller: _tabController, children: [ const News(), const Statictics(), ChangeNotifierProvider( create: (context) => RadarState(), child: const Radar(), ), const Studio(), const Profile(), ], ), ), bottomNavigationBar: Consumer( builder: (context, state, child) => DidvanBNB( currentTabIndex: state.currentPageIndex, onTabChanged: (index) { state.currentPageIndex = index; _tabController.animateTo(index); }, ), ), ); } }