mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-04-20 03:06:59 +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();
|
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(
|
SettingsModel(
|
||||||
settingsType: SettingsType.sw1tch,
|
settingsType: SettingsType.sw1tch,
|
||||||
title: 'MD3样式底栏',
|
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/video/detail/view_v.dart';
|
||||||
import 'package:PiliPlus/pages/webdav/view.dart';
|
import 'package:PiliPlus/pages/webdav/view.dart';
|
||||||
import 'package:PiliPlus/pages/webview/webview_page.dart';
|
import 'package:PiliPlus/pages/webview/webview_page.dart';
|
||||||
|
import 'package:PiliPlus/utils/storage.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:PiliPlus/pages/msg_feed_top/at_me/view.dart';
|
import 'package:PiliPlus/pages/msg_feed_top/at_me/view.dart';
|
||||||
@@ -192,7 +193,7 @@ class CustomGetPage extends GetPage<dynamic> {
|
|||||||
super.transitionDuration,
|
super.transitionDuration,
|
||||||
}) : super(
|
}) : super(
|
||||||
curve: Curves.linear,
|
curve: Curves.linear,
|
||||||
transition: Transition.native,
|
transition: GStorage.pageTransition,
|
||||||
showCupertinoParallax: false,
|
showCupertinoParallax: false,
|
||||||
popGesture: false,
|
popGesture: false,
|
||||||
fullscreenDialog: fullscreen,
|
fullscreenDialog: fullscreen,
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import 'package:PiliPlus/utils/login.dart';
|
|||||||
import 'package:PiliPlus/utils/set_int_adapter.dart';
|
import 'package:PiliPlus/utils/set_int_adapter.dart';
|
||||||
import 'package:cookie_jar/cookie_jar.dart';
|
import 'package:cookie_jar/cookie_jar.dart';
|
||||||
import 'package:flutter/material.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:hive_flutter/hive_flutter.dart';
|
||||||
import 'package:path_provider/path_provider.dart';
|
import 'package:path_provider/path_provider.dart';
|
||||||
import 'package:PiliPlus/models/model_owner.dart';
|
import 'package:PiliPlus/models/model_owner.dart';
|
||||||
@@ -471,6 +472,10 @@ class GStorage {
|
|||||||
static bool get showPgcTimeline =>
|
static bool get showPgcTimeline =>
|
||||||
GStorage.setting.get(SettingBoxKey.showPgcTimeline, defaultValue: true);
|
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
|
static List<double> get dynamicDetailRatio => List<double>.from(setting
|
||||||
.get(SettingBoxKey.dynamicDetailRatio, defaultValue: [60.0, 40.0]));
|
.get(SettingBoxKey.dynamicDetailRatio, defaultValue: [60.0, 40.0]));
|
||||||
|
|
||||||
@@ -759,6 +764,7 @@ class SettingBoxKey {
|
|||||||
recordSearchHistory = 'recordSearchHistory',
|
recordSearchHistory = 'recordSearchHistory',
|
||||||
navSearchStreamDebounce = 'navSearchStreamDebounce',
|
navSearchStreamDebounce = 'navSearchStreamDebounce',
|
||||||
showPgcTimeline = 'showPgcTimeline',
|
showPgcTimeline = 'showPgcTimeline',
|
||||||
|
pageTransition = 'pageTransition',
|
||||||
|
|
||||||
// WebDAV
|
// WebDAV
|
||||||
webdavUri = 'webdavUri',
|
webdavUri = 'webdavUri',
|
||||||
|
|||||||
Reference in New Issue
Block a user