Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-07-30 13:53:37 +08:00
parent b5b15dbed6
commit c4c0852dea
105 changed files with 2063 additions and 1360 deletions

View File

@@ -1,6 +1,7 @@
import 'package:PiliPlus/common/style.dart';
import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart';
import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
import 'package:PiliPlus/common/widgets/scaffold/simple_scaffold.dart';
import 'package:PiliPlus/common/widgets/scroll_physics.dart'
show ReloadScrollPhysics;
import 'package:PiliPlus/common/widgets/sliver/sliver_floating_header.dart';
@@ -117,50 +118,44 @@ class _MemberVideoState extends State<MemberVideo>
),
);
if (_controller.isVideo && _controller.fromViewAid?.isNotEmpty == true) {
return Stack(
clipBehavior: Clip.none,
children: [
fabAnimWrapper(child: child),
Obx(
() => !_controller.isLocating.value
? Positioned(
right: kFloatingActionButtonMargin,
bottom: 0,
child: SlideTransition(
position: fabAnimation,
child: Padding(
padding: .only(
bottom: padding.bottom + kFloatingActionButtonMargin,
),
child: FloatingActionButton.extended(
onPressed: () {
final fromViewAid = _controller.fromViewAid;
_controller.isLocating.value = true;
final locatedIndex =
_controller.loadingState.value.dataOrNull
?.indexWhere(
(i) => i.param == fromViewAid,
) ??
-1;
if (locatedIndex == -1) {
_controller
..lastAid = fromViewAid
..reload = true
..page = 0
..loadingState.value = LoadingState.loading()
..queryData();
} else {
_jumpToIndex(locatedIndex);
}
},
label: const Text('定位至上次观看'),
),
),
return ScaffoldLayout(
body: fabAnimWrapper(child: child),
fab: Obx(
() => !_controller.isLocating.value
? SlideTransition(
position: fabAnimation,
child: Padding(
padding: .only(
right: kFloatingActionButtonMargin,
bottom: kFloatingActionButtonMargin + padding.bottom,
),
)
: const SizedBox.shrink(),
),
],
child: FloatingActionButton.extended(
onPressed: () {
final fromViewAid = _controller.fromViewAid;
_controller.isLocating.value = true;
final locatedIndex =
_controller.loadingState.value.dataOrNull
?.indexWhere(
(i) => i.param == fromViewAid,
) ??
-1;
if (locatedIndex == -1) {
_controller
..lastAid = fromViewAid
..reload = true
..page = 0
..loadingState.value = LoadingState.loading()
..queryData();
} else {
_jumpToIndex(locatedIndex);
}
},
label: const Text('定位至上次观看'),
),
),
)
: const SizedBox.shrink(),
),
);
}
return child;