mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
feat: custom page transition
Closes #682 Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -177,6 +177,32 @@ List<SettingsModel> get styleSettings => [
|
||||
Get.forceAppUpdate();
|
||||
},
|
||||
),
|
||||
SettingsModel(
|
||||
settingsType: SettingsType.normal,
|
||||
title: '页面过渡动画',
|
||||
leading: const Icon(Icons.animation),
|
||||
getSubtitle: () => '当前:${GStorage.pageTransition.name}',
|
||||
onTap: (setState) async {
|
||||
Transition? result = await showDialog(
|
||||
context: Get.context!,
|
||||
builder: (context) {
|
||||
return SelectDialog<Transition>(
|
||||
title: '页面过渡动画',
|
||||
value: GStorage.pageTransition,
|
||||
values: Transition.values.map((e) {
|
||||
return (e, e.name);
|
||||
}).toList(),
|
||||
);
|
||||
},
|
||||
);
|
||||
if (result != null) {
|
||||
await GStorage.setting
|
||||
.put(SettingBoxKey.pageTransition, result.index);
|
||||
SmartDialog.showToast('重启生效');
|
||||
setState();
|
||||
}
|
||||
},
|
||||
),
|
||||
SettingsModel(
|
||||
settingsType: SettingsType.sw1tch,
|
||||
title: 'MD3样式底栏',
|
||||
|
||||
@@ -10,6 +10,7 @@ import 'package:PiliPlus/pages/video/detail/introduction/widgets/create_fav_page
|
||||
import 'package:PiliPlus/pages/video/detail/view_v.dart';
|
||||
import 'package:PiliPlus/pages/webdav/view.dart';
|
||||
import 'package:PiliPlus/pages/webview/webview_page.dart';
|
||||
import 'package:PiliPlus/utils/storage.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:PiliPlus/pages/msg_feed_top/at_me/view.dart';
|
||||
@@ -192,7 +193,7 @@ class CustomGetPage extends GetPage<dynamic> {
|
||||
super.transitionDuration,
|
||||
}) : super(
|
||||
curve: Curves.linear,
|
||||
transition: Transition.native,
|
||||
transition: GStorage.pageTransition,
|
||||
showCupertinoParallax: false,
|
||||
popGesture: false,
|
||||
fullscreenDialog: fullscreen,
|
||||
|
||||
@@ -29,6 +29,7 @@ import 'package:PiliPlus/utils/login.dart';
|
||||
import 'package:PiliPlus/utils/set_int_adapter.dart';
|
||||
import 'package:cookie_jar/cookie_jar.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get_navigation/src/routes/transitions_type.dart';
|
||||
import 'package:hive_flutter/hive_flutter.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:PiliPlus/models/model_owner.dart';
|
||||
@@ -471,6 +472,10 @@ class GStorage {
|
||||
static bool get showPgcTimeline =>
|
||||
GStorage.setting.get(SettingBoxKey.showPgcTimeline, defaultValue: true);
|
||||
|
||||
static Transition pageTransition = Transition.values[GStorage.setting.get(
|
||||
SettingBoxKey.pageTransition,
|
||||
defaultValue: Transition.native.index)];
|
||||
|
||||
static List<double> get dynamicDetailRatio => List<double>.from(setting
|
||||
.get(SettingBoxKey.dynamicDetailRatio, defaultValue: [60.0, 40.0]));
|
||||
|
||||
@@ -759,6 +764,7 @@ class SettingBoxKey {
|
||||
recordSearchHistory = 'recordSearchHistory',
|
||||
navSearchStreamDebounce = 'navSearchStreamDebounce',
|
||||
showPgcTimeline = 'showPgcTimeline',
|
||||
pageTransition = 'pageTransition',
|
||||
|
||||
// WebDAV
|
||||
webdavUri = 'webdavUri',
|
||||
|
||||
Reference in New Issue
Block a user