opt nested scroll

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-06-28 20:25:39 +08:00
parent add6dfc389
commit ace9404f5a
7 changed files with 44 additions and 38 deletions

View File

@@ -54,6 +54,7 @@ import 'package:PiliPlus/utils/accounts.dart';
import 'package:PiliPlus/utils/connectivity_utils.dart';
import 'package:PiliPlus/utils/extension/context_ext.dart';
import 'package:PiliPlus/utils/extension/iterable_ext.dart';
import 'package:PiliPlus/utils/extension/nested_scroll_ext.dart';
import 'package:PiliPlus/utils/extension/num_ext.dart';
import 'package:PiliPlus/utils/extension/size_ext.dart';
import 'package:PiliPlus/utils/page_utils.dart';
@@ -187,9 +188,7 @@ class VideoDetailController extends GetxController
)..addListener(_animListener));
void refreshPage() {
if (scrollKey.currentState?.mounted ?? false) {
(scrollKey.currentState!.context as Element).markNeedsBuild();
}
scrollKey.currentState?.refresh();
}
void _animListener() {
@@ -217,14 +216,7 @@ class VideoDetailController extends GetxController
}
void animToTop() {
final outerController = scrollKey.currentState!.outerController;
if (outerController.hasClients) {
outerController.animateTo(
outerController.offset,
duration: const Duration(milliseconds: 500),
curve: Curves.easeInOut,
);
}
scrollKey.currentState?.animToTop();
}
bool _needAnimOnDimensionChanged(bool isVertical) {

View File

@@ -71,9 +71,9 @@ class LocalIntroController extends CommonIntroController {
if (index != 0) {
SchedulerBinding.instance.addPostFrameCallback((_) {
try {
if (videoDetailCtr.scrollKey.currentState?.mounted ?? false) {
(videoDetailCtr.scrollKey.currentState!.innerController
as ExtendedNestedScrollController)
final state = videoDetailCtr.scrollKey.currentState;
if (state != null && state.mounted) {
(state.innerController as ExtendedNestedScrollController)
.nestedPositions
.first
.localJumpTo(_offset);