Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Home extends StatefulWidget {
- Home({Key key}) : super(key: key);
- @override
- _HomeState createState() => _HomeState();
- }
- class _HomeState extends State<Home> with AutomaticKeepAliveClientMixin {
- @override
- bool get wantKeepAlive => true;
- var _scaffoldKey = GlobalKey<ScaffoldState>();
- final storageService = locator<LocalStorageService>();
- bool isAuth = false;
- PageController pageController;
- int pageIndex = 0;
- @override
- void initState() {
- super.initState();
- isAuth = storageService.getFromDisk('api_token') != '';
- pageController = PageController();
- }
- @override
- Widget build(BuildContext context) {
- super.build(context);
- return SafeArea(
- top: true,
- bottom: true,
- child: Scaffold(
- backgroundColor: Colors.white,
- key: _scaffoldKey,
- body: PageView(
- pageSnapping: true,
- children: <Widget>[
- Timeline(
- pageController: pageController,
- ),
- Search(),
- LikeScreen(),
- CartScreen(),
- storageService.getFromDisk('api_token') != null
- ? ProfileScreen()
- : AuthChooserScreen(),
- ],
- controller: pageController,
- onPageChanged: onPageChanged,
- physics: NeverScrollableScrollPhysics(),
- ),
- bottomNavigationBar: _buildBottomNavigationBar(),
- ),
- );
- }
- @override
- void dispose() {
- pageController.dispose();
- super.dispose();
- }
- void onPageChanged(int pageIndex) {
- setState(() {
- this.pageIndex = pageIndex;
- });
- }
- void onTap(int pageIndex) {
- pageController.animateToPage(
- pageIndex,
- duration: Duration(milliseconds: 1000),
- curve: Curves.ease,
- );
- }
- BottomNavigationBar _buildBottomNavigationBar() {
- return BottomNavigationBar(
- type: BottomNavigationBarType.fixed,
- items: <BottomNavigationBarItem>[
- BottomNavigationBarItem(
- icon: Icon(Icons.home),
- title: Text('BottomAppBar.homeTab'.tr()),
- ),
- BottomNavigationBarItem(
- icon: Icon(Icons.search),
- title: Text('BottomAppBar.searchTab'.tr()),
- ),
- BottomNavigationBarItem(
- icon: FaIcon(FontAwesomeIcons.heart),
- title: Text('BottomAppBar.likedTab'.tr()),
- ),
- BottomNavigationBarItem(
- icon: Icon(Icons.shopping_cart),
- title: Text('BottomAppBar.cartTab'.tr()),
- ),
- BottomNavigationBarItem(
- icon: Icon(Icons.account_circle),
- title: Text('BottomAppBar.accountTab'.tr()),
- ),
- ],
- currentIndex: pageIndex,
- selectedItemColor: kDarkColor,
- unselectedItemColor: Colors.black,
- showUnselectedLabels: true,
- onTap: onTap,
- );
- }
- }
Add Comment
Please, Sign In to add comment