WallPaper_FSX_Flutter/lib/modules/root/root_controller.dart
2024-05-13 13:44:27 +08:00

47 lines
1.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:wallpaper/modules/favorite/favorite_view.dart';
import 'package:wallpaper/modules/home/home_view.dart';
import 'package:wallpaper/modules/me/me_view.dart';
class RootController extends GetxController {
static RootController get to => Get.find<RootController>();
final pages = [
PageItem('Home', Icons.home, const HomeView()),
PageItem('Favorite', Icons.favorite, const FavoriteView()),
PageItem('Me', Icons.person, const MeView()),
];
late PageController pageController;
var currentIndex = 0.obs;
@override
void onInit() {
super.onInit();
pageController = PageController(initialPage: currentIndex.value);
}
@override
void onClose() {
pageController.dispose();
super.onClose();
}
/// PageView页面变化
void onPageChanged(int index) {
currentIndex.value = index;
}
/// BottomNavigationBar切换
void onTabTapped(int index) {
pageController.jumpToPage(index);
}
}
class PageItem {
late final String label;
late final IconData icons;
late final StatelessWidget widget;
PageItem(this.label, this.icons, this.widget);
}