WaleedSyr

home.dart

Jun 8th, 2020
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 2.88 KB | None | 0 0
  1. class Home extends StatefulWidget {
  2.   Home({Key key}) : super(key: key);
  3.  
  4.   @override
  5.   _HomeState createState() => _HomeState();
  6. }
  7.  
  8. class _HomeState extends State<Home> with AutomaticKeepAliveClientMixin {
  9.   @override
  10.   bool get wantKeepAlive => true;
  11.  
  12.   var _scaffoldKey = GlobalKey<ScaffoldState>();
  13.   final storageService = locator<LocalStorageService>();
  14.  
  15.   bool isAuth = false;
  16.   PageController pageController;
  17.   int pageIndex = 0;
  18.  
  19.   @override
  20.   void initState() {
  21.     super.initState();
  22.  
  23.     isAuth = storageService.getFromDisk('api_token') != '';
  24.     pageController = PageController();
  25.   }
  26.  
  27.   @override
  28.   Widget build(BuildContext context) {
  29.     super.build(context);
  30.     return SafeArea(
  31.       top: true,
  32.       bottom: true,
  33.       child: Scaffold(
  34.         backgroundColor: Colors.white,
  35.         key: _scaffoldKey,
  36.         body: PageView(
  37.           pageSnapping: true,
  38.           children: <Widget>[
  39.             Timeline(
  40.               pageController: pageController,
  41.             ),
  42.             Search(),
  43.             LikeScreen(),
  44.             CartScreen(),
  45.            
  46.             storageService.getFromDisk('api_token') != null
  47.                 ? ProfileScreen()
  48.                 : AuthChooserScreen(),
  49.           ],
  50.           controller: pageController,
  51.           onPageChanged: onPageChanged,
  52.           physics: NeverScrollableScrollPhysics(),
  53.         ),
  54.         bottomNavigationBar: _buildBottomNavigationBar(),
  55.       ),
  56.     );
  57.   }
  58.  
  59.   @override
  60.   void dispose() {
  61.     pageController.dispose();
  62.     super.dispose();
  63.   }
  64.  
  65.   void onPageChanged(int pageIndex) {
  66.     setState(() {
  67.       this.pageIndex = pageIndex;
  68.     });
  69.   }
  70.  
  71.   void onTap(int pageIndex) {
  72.     pageController.animateToPage(
  73.       pageIndex,
  74.       duration: Duration(milliseconds: 1000),
  75.       curve: Curves.ease,
  76.     );
  77.   }
  78.  
  79.   BottomNavigationBar _buildBottomNavigationBar() {
  80.     return BottomNavigationBar(
  81.       type: BottomNavigationBarType.fixed,
  82.       items: <BottomNavigationBarItem>[
  83.         BottomNavigationBarItem(
  84.           icon: Icon(Icons.home),
  85.           title: Text('BottomAppBar.homeTab'.tr()),
  86.         ),
  87.         BottomNavigationBarItem(
  88.           icon: Icon(Icons.search),
  89.           title: Text('BottomAppBar.searchTab'.tr()),
  90.         ),
  91.         BottomNavigationBarItem(
  92.           icon: FaIcon(FontAwesomeIcons.heart),
  93.           title: Text('BottomAppBar.likedTab'.tr()),
  94.         ),
  95.         BottomNavigationBarItem(
  96.           icon: Icon(Icons.shopping_cart),
  97.           title: Text('BottomAppBar.cartTab'.tr()),
  98.         ),
  99.         BottomNavigationBarItem(
  100.           icon: Icon(Icons.account_circle),
  101.           title: Text('BottomAppBar.accountTab'.tr()),
  102.         ),
  103.       ],
  104.       currentIndex: pageIndex,
  105.       selectedItemColor: kDarkColor,
  106.       unselectedItemColor: Colors.black,
  107.       showUnselectedLabels: true,
  108.       onTap: onTap,
  109.     );
  110.   }
  111. }
Add Comment
Please, Sign In to add comment