74 lines
2.1 KiB
Dart
74 lines
2.1 KiB
Dart
|
// import 'dart:io';
|
||
|
|
||
|
import 'dart:io';
|
||
|
import 'package:flutter/material.dart';
|
||
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||
|
import '../../models/app_bottom_nav_item.dart';
|
||
|
import '../../services/app_info.service.dart';
|
||
|
import '../../util/util.dart';
|
||
|
|
||
|
class LandingPage extends StatefulWidget {
|
||
|
LandingPage({Key? key}) : super(key: key);
|
||
|
|
||
|
@override
|
||
|
_LandingPageState createState() => _LandingPageState();
|
||
|
}
|
||
|
|
||
|
class _LandingPageState extends State<LandingPage> {
|
||
|
int _selectedLanding = 0;
|
||
|
|
||
|
List<BottomNavigationBarItem> bottomNavItems = [];
|
||
|
List<Widget> pages = [];
|
||
|
|
||
|
@override
|
||
|
Widget build(BuildContext context) {
|
||
|
// ScreenUtil.init(
|
||
|
// BoxConstraints(
|
||
|
// maxWidth: MediaQuery.of(context).size.width,
|
||
|
// maxHeight: MediaQuery.of(context).size.height),
|
||
|
// designSize: const Size(414, 896),
|
||
|
// orientation: Orientation.portrait,
|
||
|
// context: context,
|
||
|
// );
|
||
|
List<AppBottomNavItem> roleWithBottomNavItems =
|
||
|
AppInfoService.to.bottomNavItems!;
|
||
|
bottomNavItems = roleWithBottomNavItems
|
||
|
.map((e) => BottomNavigationBarItem(
|
||
|
icon: Image.asset(
|
||
|
e.icon!,
|
||
|
height: ScreenAdaper.width(30),
|
||
|
width: ScreenAdaper.width(30),
|
||
|
),
|
||
|
activeIcon: Image.asset(
|
||
|
e.activeIcon!,
|
||
|
height: ScreenAdaper.width(30),
|
||
|
width: ScreenAdaper.width(30),
|
||
|
),
|
||
|
label: e.label))
|
||
|
.toList();
|
||
|
pages = roleWithBottomNavItems.map((e) => e.page!).toList();
|
||
|
return Scaffold(
|
||
|
bottomNavigationBar: BottomNavigationBar(
|
||
|
iconSize: ScreenAdaper.sp(25),
|
||
|
type: BottomNavigationBarType.fixed,
|
||
|
items: bottomNavItems,
|
||
|
showSelectedLabels: false,
|
||
|
showUnselectedLabels: false,
|
||
|
currentIndex: _selectedLanding,
|
||
|
onTap: (landing) {
|
||
|
_onItemTapped(landing);
|
||
|
},
|
||
|
),
|
||
|
body: pages[_selectedLanding],
|
||
|
);
|
||
|
}
|
||
|
|
||
|
void _onItemTapped(int landing) {
|
||
|
if (landing != _selectedLanding) {
|
||
|
setState(() {
|
||
|
_selectedLanding = landing;
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
}
|