80 lines
2.2 KiB
Dart
80 lines
2.2 KiB
Dart
import 'package:fengshui_compass/components/my_icon.dart';
|
|
import 'package:fengshui_compass/pages/personal_page.dart';
|
|
import 'package:fengshui_compass/utils/sp_utils.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:fengshui_compass/pages/birthcal_page.dart';
|
|
import 'package:fengshui_compass/pages/compass_page.dart';
|
|
import 'package:flutter/services.dart';
|
|
|
|
class BottomNavigationWidget extends StatefulWidget {
|
|
const BottomNavigationWidget({Key key}) : super(key: key);
|
|
|
|
@override
|
|
State<BottomNavigationWidget> createState() => _MyHomePageState();
|
|
}
|
|
|
|
class _MyHomePageState extends State<BottomNavigationWidget> {
|
|
int currentIndex = 0;
|
|
List<Widget> list = [];
|
|
|
|
@override
|
|
Future<void> initState() {
|
|
list
|
|
..add(const CompassPage())
|
|
..add(BirthCalPage())
|
|
..add(const PersonalPage());
|
|
super.initState();
|
|
//
|
|
Future.delayed(Duration.zero, () {
|
|
initSP();
|
|
});
|
|
|
|
SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: []);
|
|
}
|
|
|
|
void initSP() async {
|
|
await SPUtil.init();
|
|
}
|
|
|
|
void _onItemTapped(int index) {
|
|
setState(() {
|
|
currentIndex = index;
|
|
});
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
backgroundColor: Colors.transparent,
|
|
extendBody: true,
|
|
body: list[currentIndex],
|
|
bottomNavigationBar: ClipRRect(
|
|
borderRadius: const BorderRadius.only(
|
|
topLeft: Radius.circular(24.0),
|
|
topRight: Radius.circular(24.0),
|
|
),
|
|
child: BottomNavigationBar(
|
|
type: BottomNavigationBarType.fixed,
|
|
currentIndex: currentIndex,
|
|
selectedItemColor: const Color.fromRGBO(237, 173, 89, 1.0), // 抽出单独定义
|
|
onTap: _onItemTapped,
|
|
items: const <BottomNavigationBarItem>[
|
|
BottomNavigationBarItem(
|
|
icon: Icon(MyIcons.icon_luopan, size: 30),
|
|
label: '在线罗盘',
|
|
),
|
|
BottomNavigationBarItem(
|
|
icon: Icon(MyIcons.icon_zaixianqiju_, size: 30),
|
|
label: '在线起局',
|
|
),
|
|
BottomNavigationBarItem(
|
|
icon: Icon(Icons.person, size: 30),
|
|
label: '我的',
|
|
),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|