Squashed commit of the following:

commit 8285fab60440587dc68d1662b177466d8a533720
Author: orz12 <ms_lyq@hotmail.com>
Date:   Tue Apr 23 00:16:41 2024 +0800

    feat: 自适应导航栏依赖

commit 3af4be16fe5c7c2e97b2b457071f5fe28425905d
Merge: 209e1215 ce459701
Author: X64D <152763398+X64D@users.noreply.github.com>
Date:   Mon Apr 22 15:01:23 2024 +0000

    Merge branch 'orz12:main' into main

commit 209e121530ed6701c3c729e8d8a5d4b5fc92747b
Author: X64D <152763398+X64D@users.noreply.github.com>
Date:   Mon Apr 8 23:18:43 2024 +0000

    feat: 横屏适配 #53 #57

commit 1671f29e9c1d22324ad7d5ededd9e09c84363be4
Author: X64D <152763398+X64D@users.noreply.github.com>
Date:   Mon Apr 8 23:11:16 2024 +0000

    feat: 横屏适配 #53 #57
This commit is contained in:
orz12
2024-04-23 00:19:02 +08:00
parent ce459701aa
commit c90f75de72
3 changed files with 50 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
import 'dart:async'; import 'dart:async';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_adaptive_scaffold/flutter_adaptive_scaffold.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:hive/hive.dart'; import 'package:hive/hive.dart';
import 'package:PiliPalaX/models/common/dynamic_badge_mode.dart'; import 'package:PiliPalaX/models/common/dynamic_badge_mode.dart';
@@ -30,6 +31,7 @@ class _MainAppState extends State<MainApp> with SingleTickerProviderStateMixin {
int? _lastSelectTime; //上次点击时间 int? _lastSelectTime; //上次点击时间
Box setting = GStrorage.setting; Box setting = GStrorage.setting;
late bool enableMYBar; late bool enableMYBar;
late bool horizontalScreen;
@override @override
void initState() { void initState() {
@@ -38,6 +40,7 @@ class _MainAppState extends State<MainApp> with SingleTickerProviderStateMixin {
_mainController.pageController = _mainController.pageController =
PageController(initialPage: _mainController.selectedIndex); PageController(initialPage: _mainController.selectedIndex);
enableMYBar = setting.get(SettingBoxKey.enableMYBar, defaultValue: true); enableMYBar = setting.get(SettingBoxKey.enableMYBar, defaultValue: true);
horizontalScreen = setting.get(SettingBoxKey.horizontalScreen, defaultValue: false);
} }
void setIndex(int value) async { void setIndex(int value) async {
@@ -109,7 +112,43 @@ class _MainAppState extends State<MainApp> with SingleTickerProviderStateMixin {
onPopInvoked: (bool didPop) async { onPopInvoked: (bool didPop) async {
_mainController.onBackPressed(context); _mainController.onBackPressed(context);
}, },
child: Scaffold( child: horizontalScreen
? AdaptiveScaffold(
body: (_) => PageView(
physics: const NeverScrollableScrollPhysics(),
controller: _mainController.pageController,
onPageChanged: (index) {
_mainController.selectedIndex = index;
setState(() {});
},
children: _mainController.pages,
),
destinations: _mainController.navigationBars.map((e) => NavigationDestination(
icon: Badge(
label: _mainController.dynamicBadgeType ==
DynamicBadgeMode.number
? Text(e['count'].toString())
: null,
padding: const EdgeInsets.fromLTRB(6, 0, 6, 0),
isLabelVisible:
_mainController.dynamicBadgeType !=
DynamicBadgeMode.hidden &&
e['count'] > 0,
child: e['icon'],
backgroundColor:
Theme.of(context).colorScheme.primary,
textColor: Theme.of(context)
.colorScheme
.onInverseSurface,
),
selectedIcon: e['selectIcon'],
label: e['label'],
)).toList(),
onSelectedIndexChange: (value) => setIndex(value),
selectedIndex: _mainController.selectedIndex,
useDrawer: false
)
: Scaffold(
extendBody: true, extendBody: true,
body: PageView( body: PageView(
physics: const NeverScrollableScrollPhysics(), physics: const NeverScrollableScrollPhysics(),

View File

@@ -510,6 +510,14 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
flutter_adaptive_scaffold:
dependency: "direct main"
description:
name: flutter_adaptive_scaffold
sha256: "600bbe237530a249f957f7d0f36273c20bd38d137e28e098c5231c30cadbe927"
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
source: hosted
version: "0.1.10+1"
flutter_cache_manager: flutter_cache_manager:
dependency: transitive dependency: transitive
description: description:

View File

@@ -37,6 +37,8 @@ dependencies:
cupertino_icons: ^1.0.5 cupertino_icons: ^1.0.5
# 动态取色 # 动态取色
dynamic_color: ^1.6.8 dynamic_color: ^1.6.8
# Adaptive scaffold
flutter_adaptive_scaffold: ^0.1.10+1
get: ^4.6.5 get: ^4.6.5