mod: main: use tabbarview

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-01-19 21:37:55 +08:00
parent 568dcfcba9
commit 25980d80a9
3 changed files with 369 additions and 6 deletions

View File

@@ -23,7 +23,7 @@ class MainController extends GetxController {
final StreamController<bool> bottomBarStream =
StreamController<bool>.broadcast();
late bool hideTabBar;
late PageController pageController;
late TabController controller;
RxInt selectedIndex = 0.obs;
RxBool isLogin = false.obs;

View File

@@ -2,6 +2,7 @@ import 'dart:async';
import 'dart:io';
import 'package:PiliPlus/common/widgets/network_img_layer.dart';
import 'package:PiliPlus/common/widgets/tabs.dart';
import 'package:PiliPlus/grpc/grpc_client.dart';
import 'package:PiliPlus/pages/mine/controller.dart';
import 'package:PiliPlus/utils/utils.dart';
@@ -41,8 +42,11 @@ class _MainAppState extends State<MainApp>
void initState() {
super.initState();
_lastSelectTime = DateTime.now().millisecondsSinceEpoch;
_mainController.pageController =
PageController(initialPage: _mainController.selectedIndex.value);
_mainController.controller = TabController(
vsync: this,
initialIndex: _mainController.selectedIndex.value,
length: _mainController.navigationBars.length,
);
enableMYBar =
GStorage.setting.get(SettingBoxKey.enableMYBar, defaultValue: true);
useSideBar =
@@ -110,7 +114,7 @@ class _MainAppState extends State<MainApp>
if (value != _mainController.selectedIndex.value) {
_mainController.selectedIndex.value = value;
_mainController.pageController.jumpToPage(value);
_mainController.controller.animateTo(value);
dynamic currentPage = _mainController.pages[value];
if (currentPage is HomePage) {
_checkDefaultSearch();
@@ -213,9 +217,12 @@ class _MainAppState extends State<MainApp>
color: Theme.of(context).colorScheme.outline.withOpacity(0.06),
),
Expanded(
child: PageView(
child: CustomTabBarView(
scrollDirection: context.orientation == Orientation.portrait
? Axis.horizontal
: Axis.vertical,
physics: const NeverScrollableScrollPhysics(),
controller: _mainController.pageController,
controller: _mainController.controller,
children: _mainController.pages,
),
),