fix: headerControl缺少heroTag(改为直接传入)

This commit is contained in:
orz12
2024-06-01 11:29:03 +08:00
parent e460579bbc
commit 45056792aa
3 changed files with 14 additions and 4 deletions

View File

@@ -134,6 +134,7 @@ class VideoDetailController extends GetxController
controller: plPlayerController,
videoDetailCtr: this,
floating: floating,
heroTag: heroTag,
);
// CDN优化
enableCDN = setting.get(SettingBoxKey.enableCDN, defaultValue: true);

View File

@@ -72,7 +72,9 @@ class _VideoDetailPageState extends State<VideoDetailPage>
@override
void initState() {
super.initState();
if (Get.arguments != null && Get.arguments['heroTag'] != null) {
heroTag = Get.arguments['heroTag'];
}
videoDetailController = Get.put(VideoDetailController(), tag: heroTag);
videoIntroController = Get.put(VideoIntroController(), tag: heroTag);
videoIntroController.videoDetail.listen((value) {
@@ -247,6 +249,9 @@ class _VideoDetailPageState extends State<VideoDetailPage>
void dispose() {
videoDetailController.floating?.dispose();
floating.dispose();
videoIntroController.videoDetail.close();
bangumiIntroController.bangumiDetail.close();
videoDetailController.cid.close();
if (!horizontalScreen) {
AutoOrientation.portraitUpMode();
}
@@ -1124,6 +1129,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
headerControl: HeaderControl(
controller: plPlayerController,
videoDetailCtr: videoDetailController,
heroTag: heroTag,
),
danmuWidget: pipNoDanmaku
? null

View File

@@ -28,11 +28,13 @@ class HeaderControl extends StatefulWidget implements PreferredSizeWidget {
this.controller,
this.videoDetailCtr,
this.floating,
required this.heroTag,
super.key,
});
final PlPlayerController? controller;
final VideoDetailController? videoDetailCtr;
final Floating? floating;
final String heroTag;
@override
State<HeaderControl> createState() => _HeaderControlState();
@@ -64,9 +66,10 @@ class _HeaderControlState extends State<HeaderControl> {
super.initState();
videoInfo = widget.videoDetailCtr!.data;
listenFullScreenStatus();
if (Get.arguments != null) {
heroTag = Get.arguments['heroTag'];
}
heroTag = widget.heroTag;
// if (Get.arguments != null && Get.arguments['heroTag'] != null) {
// heroTag = Get.arguments['heroTag'];
// }
videoIntroController = Get.put(VideoIntroController(), tag: heroTag);
horizontalScreen =
setting.get(SettingBoxKey.horizontalScreen, defaultValue: false);