mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
mod: video tabbarview
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -1,32 +1,54 @@
|
||||
import 'package:PiliPlus/utils/storage.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
Widget videoTabBarView({
|
||||
required List<Widget> children,
|
||||
TabController? controller,
|
||||
}) =>
|
||||
TabBarView(
|
||||
physics: const CustomTabBarViewClampingScrollPhysics(),
|
||||
controller: controller,
|
||||
children: children,
|
||||
);
|
||||
|
||||
Widget tabBarView({
|
||||
required List<Widget> children,
|
||||
TabController? controller,
|
||||
}) =>
|
||||
TabBarView(
|
||||
physics: customTabBarViewScrollPhysics,
|
||||
physics: const CustomTabBarViewScrollPhysics(),
|
||||
controller: controller,
|
||||
children: children,
|
||||
);
|
||||
|
||||
class CustomTabBarViewScrollPhysics extends ScrollPhysics {
|
||||
CustomTabBarViewScrollPhysics({super.parent});
|
||||
const CustomTabBarViewScrollPhysics({super.parent});
|
||||
|
||||
@override
|
||||
CustomTabBarViewScrollPhysics applyTo(ScrollPhysics? ancestor) {
|
||||
return CustomTabBarViewScrollPhysics(parent: buildParent(ancestor)!);
|
||||
return CustomTabBarViewScrollPhysics(parent: buildParent(ancestor));
|
||||
}
|
||||
|
||||
final springDescription = GStorage.springDescription;
|
||||
|
||||
@override
|
||||
SpringDescription get spring => SpringDescription(
|
||||
mass: springDescription[0],
|
||||
stiffness: springDescription[1],
|
||||
damping: springDescription[2],
|
||||
mass: GStorage.springDescription[0],
|
||||
stiffness: GStorage.springDescription[1],
|
||||
damping: GStorage.springDescription[2],
|
||||
);
|
||||
}
|
||||
|
||||
final customTabBarViewScrollPhysics = CustomTabBarViewScrollPhysics();
|
||||
class CustomTabBarViewClampingScrollPhysics extends ClampingScrollPhysics {
|
||||
const CustomTabBarViewClampingScrollPhysics({super.parent});
|
||||
|
||||
@override
|
||||
CustomTabBarViewClampingScrollPhysics applyTo(ScrollPhysics? ancestor) {
|
||||
return CustomTabBarViewClampingScrollPhysics(parent: buildParent(ancestor));
|
||||
}
|
||||
|
||||
@override
|
||||
SpringDescription get spring => SpringDescription(
|
||||
mass: GStorage.springDescription[0],
|
||||
stiffness: GStorage.springDescription[1],
|
||||
damping: GStorage.springDescription[2],
|
||||
);
|
||||
}
|
||||
|
||||
@@ -587,14 +587,13 @@ List<SettingsModel> get styleSettings => [
|
||||
TextButton(
|
||||
onPressed: () async {
|
||||
Get.back();
|
||||
late final spring = GStorage.springDescription;
|
||||
await GStorage.setting.put(
|
||||
SettingBoxKey.springDescription,
|
||||
List<double>.generate(
|
||||
3,
|
||||
(i) =>
|
||||
double.tryParse(springDescription[i]) ??
|
||||
spring[i],
|
||||
GStorage.springDescription[i],
|
||||
),
|
||||
);
|
||||
SmartDialog.showToast('设置成功,重启生效');
|
||||
|
||||
@@ -624,7 +624,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
||||
showReply: videoDetailController.showReply,
|
||||
),
|
||||
Expanded(
|
||||
child: tabBarView(
|
||||
child: videoTabBarView(
|
||||
controller: videoDetailController.tabCtr,
|
||||
children: [
|
||||
videoIntro(),
|
||||
@@ -674,7 +674,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
||||
children: [
|
||||
buildTabbar(showReply: videoDetailController.showReply),
|
||||
Expanded(
|
||||
child: tabBarView(
|
||||
child: videoTabBarView(
|
||||
controller: videoDetailController.tabCtr,
|
||||
children: [
|
||||
videoIntro(),
|
||||
@@ -773,7 +773,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
||||
showReply: videoDetailController.showReply,
|
||||
),
|
||||
Expanded(
|
||||
child: tabBarView(
|
||||
child: videoTabBarView(
|
||||
controller: videoDetailController.tabCtr,
|
||||
children: [
|
||||
if (videoDetailController.showReply)
|
||||
@@ -882,7 +882,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
||||
showReply: videoDetailController.showReply,
|
||||
),
|
||||
Expanded(
|
||||
child: tabBarView(
|
||||
child: videoTabBarView(
|
||||
controller: videoDetailController.tabCtr,
|
||||
children: [
|
||||
if (videoDetailController.videoType ==
|
||||
|
||||
@@ -422,7 +422,7 @@ class GStorage {
|
||||
// ratio: 1.1,
|
||||
// );
|
||||
// damping = ratio * 2.0 * math.sqrt(mass * stiffness)
|
||||
static List<double> get springDescription => List<double>.from(
|
||||
static final List<double> springDescription = List<double>.from(
|
||||
setting.get(
|
||||
SettingBoxKey.springDescription, // [mass, stiffness, damping]
|
||||
defaultValue: [0.5, 100.0, 2.2 * sqrt(50)],
|
||||
|
||||
Reference in New Issue
Block a user