Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-02-27 23:52:54 +08:00
parent 87d3d0ca14
commit 5b8c68303f
4 changed files with 23 additions and 16 deletions

View File

@@ -130,7 +130,7 @@ class VideoDetailController extends GetxController
StreamSubscription<Duration>? positionSubscription; StreamSubscription<Duration>? positionSubscription;
late final scrollKey = GlobalKey<ExtendedNestedScrollViewState>(); late final scrollKey = GlobalKey<ExtendedNestedScrollViewState>();
late String _direction = 'horizontal'; late RxString direction = 'horizontal'.obs;
late final RxDouble scrollRatio = 0.0.obs; late final RxDouble scrollRatio = 0.0.obs;
late final ScrollController scrollCtr = ScrollController() late final ScrollController scrollCtr = ScrollController()
..addListener(scrollListener); ..addListener(scrollListener);
@@ -140,8 +140,9 @@ class VideoDetailController extends GetxController
vsync: this, vsync: this,
duration: const Duration(milliseconds: 200), duration: const Duration(milliseconds: 200),
); );
late final double minVideoHeight = Get.width * 9 / 16; late final double minVideoHeight = min(Get.height, Get.width) * 9 / 16;
late final double maxVideoHeight = max(Get.height * 0.65, Get.width); late final double maxVideoHeight =
max(max(Get.height, Get.width) * 0.65, min(Get.height, Get.width));
late double videoHeight = minVideoHeight; late double videoHeight = minVideoHeight;
void setVideoHeight() { void setVideoHeight() {
@@ -150,11 +151,17 @@ class VideoDetailController extends GetxController
? 'horizontal' ? 'horizontal'
: 'vertical' : 'vertical'
: 'horizontal'; : 'horizontal';
if (GStorage.collapsibleVideoPage.not || scrollCtr.hasClients.not) { if (GStorage.collapsibleVideoPage.not) {
this.direction.value = direction;
return; return;
} }
if (_direction != direction) { if (scrollCtr.hasClients.not) {
_direction = direction; videoHeight = direction == 'vertical' ? maxVideoHeight : minVideoHeight;
this.direction.value = direction;
return;
}
if (this.direction.value != direction) {
this.direction.value = direction;
double videoHeight = double videoHeight =
direction == 'vertical' ? maxVideoHeight : minVideoHeight; direction == 'vertical' ? maxVideoHeight : minVideoHeight;
if (this.videoHeight != videoHeight) { if (this.videoHeight != videoHeight) {
@@ -1077,7 +1084,7 @@ class VideoDetailController extends GetxController
? null ? null
: Duration(milliseconds: data.timeLength!), : Duration(milliseconds: data.timeLength!),
// 宽>高 水平 否则 垂直 // 宽>高 水平 否则 垂直
direction: _direction, direction: direction.value,
bvid: bvid, bvid: bvid,
cid: cid.value, cid: cid.value,
enableHeart: enableHeart, enableHeart: enableHeart,

View File

@@ -305,9 +305,9 @@ class _VideoInfoState extends State<VideoInfo> with TickerProviderStateMixin {
final ThemeData t = Theme.of(context); final ThemeData t = Theme.of(context);
return SliverLayoutBuilder( return SliverLayoutBuilder(
builder: (BuildContext context, SliverConstraints constraints) { builder: (BuildContext context, SliverConstraints constraints) {
// bool isHorizontal = constraints.crossAxisExtent > bool isHorizontal = context.orientation == Orientation.landscape &&
// constraints.viewportMainAxisExtent * 1.25; constraints.crossAxisExtent >
bool isHorizontal = context.orientation == Orientation.landscape; constraints.viewportMainAxisExtent * 1.25;
return SliverPadding( return SliverPadding(
padding: const EdgeInsets.only( padding: const EdgeInsets.only(
left: StyleString.safeSpace, left: StyleString.safeSpace,

View File

@@ -193,7 +193,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
// begin: MediaQuery.of(context).orientation == Orientation.landscape // begin: MediaQuery.of(context).orientation == Orientation.landscape
// ? context.height // ? context.height
// : ((enableVerticalExpand && // : ((enableVerticalExpand &&
// plPlayerController?.direction.value == 'vertical') // videoDetailController.direction.value == 'vertical')
// ? context.width * 5 / 4 // ? context.width * 5 / 4
// : context.width * 9 / 16), // : context.width * 9 / 16),
// end: 0, // end: 0,
@@ -568,7 +568,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
final double videoWidth = context.width; final double videoWidth = context.width;
// debugPrint(videoDetailController.tabCtr.index); // debugPrint(videoDetailController.tabCtr.index);
if (enableVerticalExpand && if (enableVerticalExpand &&
plPlayerController?.direction.value == 'vertical') { videoDetailController.direction.value == 'vertical') {
videoHeight = context.width; videoHeight = context.width;
} }
if (MediaQuery.of(context).orientation == if (MediaQuery.of(context).orientation ==
@@ -648,7 +648,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
Widget get childWhenDisabledAlmostSquareInner => Obx( Widget get childWhenDisabledAlmostSquareInner => Obx(
() { () {
if (enableVerticalExpand && if (enableVerticalExpand &&
plPlayerController?.direction.value == 'vertical') { videoDetailController.direction.value == 'vertical') {
final double videoHeight = context.height - final double videoHeight = context.height -
(removeSafeArea (removeSafeArea
? 0 ? 0
@@ -743,7 +743,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
Widget get childWhenDisabledLandscapeInner => Obx( Widget get childWhenDisabledLandscapeInner => Obx(
() { () {
if (enableVerticalExpand && if (enableVerticalExpand &&
plPlayerController?.direction.value == 'vertical') { videoDetailController.direction.value == 'vertical') {
final double videoHeight = context.height - final double videoHeight = context.height -
(removeSafeArea ? 0 : MediaQuery.of(context).padding.top); (removeSafeArea ? 0 : MediaQuery.of(context).padding.top);
final double videoWidth = videoHeight * 9 / 16; final double videoWidth = videoHeight * 9 / 16;

View File

@@ -934,7 +934,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
Widget get childWhenDisabledAlmostSquareInner => Obx( Widget get childWhenDisabledAlmostSquareInner => Obx(
() { () {
if (enableVerticalExpand && if (enableVerticalExpand &&
plPlayerController?.direction.value == 'vertical') { videoDetailController.direction.value == 'vertical') {
final double videoHeight = context.height - final double videoHeight = context.height -
(removeSafeArea (removeSafeArea
? 0 ? 0
@@ -1029,7 +1029,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
Widget get childWhenDisabledLandscapeInner => Obx( Widget get childWhenDisabledLandscapeInner => Obx(
() { () {
if (enableVerticalExpand && if (enableVerticalExpand &&
plPlayerController?.direction.value == 'vertical') { videoDetailController.direction.value == 'vertical') {
final double videoHeight = context.height - final double videoHeight = context.height -
(removeSafeArea ? 0 : MediaQuery.of(context).padding.top); (removeSafeArea ? 0 : MediaQuery.of(context).padding.top);
final double videoWidth = videoHeight * 9 / 16; final double videoWidth = videoHeight * 9 / 16;