mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
opt: video page v
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -2088,7 +2088,7 @@ class VideoDetailController extends GetxController
|
||||
@override
|
||||
void onClose() {
|
||||
tabCtr.dispose();
|
||||
if (Get.currentRoute.startsWith('/videoV')) {
|
||||
if (GStorage.collapsibleVideoPage) {
|
||||
scrollCtr.removeListener(scrollListener);
|
||||
scrollCtr.dispose;
|
||||
animationController.dispose();
|
||||
@@ -2101,7 +2101,7 @@ class VideoDetailController extends GetxController
|
||||
videoUrl = null;
|
||||
audioUrl = null;
|
||||
|
||||
if (Get.currentRoute.startsWith('/videoV') && scrollRatio.value != 0) {
|
||||
if (GStorage.collapsibleVideoPage && scrollRatio.value != 0) {
|
||||
scrollRatio.refresh();
|
||||
}
|
||||
|
||||
|
||||
@@ -111,7 +111,7 @@ class _VideoReplyPanelState extends State<VideoReplyPanel>
|
||||
parent: ClampingScrollPhysics(),
|
||||
)
|
||||
: const AlwaysScrollableScrollPhysics(),
|
||||
// key: const PageStorageKey<String>('评论'),
|
||||
key: const PageStorageKey<String>('评论'),
|
||||
slivers: <Widget>[
|
||||
SliverPersistentHeader(
|
||||
pinned: false,
|
||||
|
||||
@@ -254,11 +254,15 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
videoDetailController.scrollCtr.offset /
|
||||
videoDetailController.videoHeight);
|
||||
} else {
|
||||
if (videoDetailController.scrollKey.currentState?.mounted == true) {
|
||||
videoDetailController.scrollKey.currentState?.setState(() {});
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (videoDetailController.scrollKey.currentState?.mounted == true) {
|
||||
videoDetailController.scrollKey.currentState?.setState(() {});
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
debugPrint('handle playe status: $e');
|
||||
}
|
||||
@@ -644,9 +648,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
),
|
||||
),
|
||||
),
|
||||
body: Builder(
|
||||
builder: (context) {
|
||||
return ExtendedNestedScrollView(
|
||||
body: ExtendedNestedScrollView(
|
||||
key: videoDetailController.scrollKey,
|
||||
physics: const NeverScrollableScrollPhysics(
|
||||
parent: ClampingScrollPhysics(),
|
||||
@@ -660,8 +662,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
videoDetailController.isCollapsing
|
||||
? animHeight
|
||||
: videoDetailController.isCollapsing ||
|
||||
plPlayerController
|
||||
?.playerStatus.status.value ==
|
||||
plPlayerController?.playerStatus.status.value ==
|
||||
PlayerStatus.playing
|
||||
? videoDetailController.minVideoHeight
|
||||
: kToolbarHeight;
|
||||
@@ -669,15 +670,22 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
videoDetailController.animationController.value == 1) {
|
||||
videoDetailController.isExpanding = false;
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
if (videoDetailController.scrollKey.currentState?.mounted ==
|
||||
true) {
|
||||
videoDetailController.scrollRatio.value = 0;
|
||||
videoDetailController.scrollKey.currentState
|
||||
?.setState(() {});
|
||||
}
|
||||
});
|
||||
} else if (videoDetailController.isCollapsing &&
|
||||
videoDetailController.animationController.value == 1) {
|
||||
videoDetailController.isCollapsing = false;
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
if (videoDetailController.scrollKey.currentState?.mounted ==
|
||||
true) {
|
||||
videoDetailController.scrollKey.currentState
|
||||
?.setState(() {});
|
||||
}
|
||||
});
|
||||
}
|
||||
return height;
|
||||
@@ -728,9 +736,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
Orientation.landscape ||
|
||||
removeSafeArea
|
||||
? 0
|
||||
: MediaQuery.of(context)
|
||||
.padding
|
||||
.top)
|
||||
: MediaQuery.of(context).padding.top)
|
||||
: videoDetailController.isExpanding ||
|
||||
videoDetailController.isCollapsing
|
||||
? animHeight
|
||||
@@ -741,8 +747,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
(horizontalScreen ||
|
||||
MediaQuery.of(context).orientation ==
|
||||
Orientation.portrait),
|
||||
onPopInvokedWithResult:
|
||||
_onPopInvokedWithResult,
|
||||
onPopInvokedWithResult: _onPopInvokedWithResult,
|
||||
child: videoPlayer(
|
||||
videoWidth,
|
||||
videoDetailController.isExpanding ||
|
||||
@@ -760,8 +765,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
opacity:
|
||||
videoDetailController.scrollRatio.value,
|
||||
child: Container(
|
||||
color:
|
||||
Theme.of(context).colorScheme.surface,
|
||||
color: Theme.of(context).colorScheme.surface,
|
||||
alignment: Alignment.topCenter,
|
||||
child: SizedBox(
|
||||
height: kToolbarHeight,
|
||||
@@ -778,8 +782,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
child: IconButton(
|
||||
tooltip: '返回',
|
||||
icon: Icon(
|
||||
FontAwesomeIcons
|
||||
.arrowLeft,
|
||||
FontAwesomeIcons.arrowLeft,
|
||||
size: 15,
|
||||
color: Theme.of(context)
|
||||
.colorScheme
|
||||
@@ -835,17 +838,14 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
),
|
||||
),
|
||||
);
|
||||
return videoDetailController.scrollRatio.value ==
|
||||
0 ||
|
||||
videoDetailController.scrollCtr.offset ==
|
||||
0
|
||||
return videoDetailController.scrollRatio.value == 0 ||
|
||||
videoDetailController.scrollCtr.offset == 0
|
||||
? const SizedBox.shrink()
|
||||
: Positioned.fill(
|
||||
bottom: -2,
|
||||
child: GestureDetector(
|
||||
onTap: () async {
|
||||
if (videoDetailController
|
||||
.isQuerying) {
|
||||
if (videoDetailController.isQuerying) {
|
||||
debugPrint('handlePlay: querying');
|
||||
return;
|
||||
}
|
||||
@@ -855,12 +855,11 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
null) {
|
||||
debugPrint(
|
||||
'handlePlay: videoUrl/audioUrl not initialized');
|
||||
videoDetailController
|
||||
.queryVideoUrl();
|
||||
videoDetailController.queryVideoUrl();
|
||||
return;
|
||||
}
|
||||
videoDetailController
|
||||
.scrollRatio.value = 0;
|
||||
videoDetailController.scrollRatio.value =
|
||||
0;
|
||||
if (plPlayerController == null) {
|
||||
handlePlay();
|
||||
} else {
|
||||
@@ -919,8 +918,6 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user