mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-05-09 19:47:57 +08:00
opt dyn topic
opt member opus Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -20,6 +20,8 @@ class DynTopicController
|
||||
String offset = '';
|
||||
Rx<TopicSortByConf?> topicSortByConf = Rx<TopicSortByConf?>(null);
|
||||
|
||||
double? appbarOffset;
|
||||
|
||||
// top
|
||||
final isLogin = Accounts.main.isLogin;
|
||||
Rx<bool?> isFav = Rx<bool?>(null);
|
||||
@@ -63,7 +65,14 @@ class DynTopicController
|
||||
|
||||
@override
|
||||
Future<void> onReload() {
|
||||
scrollController.jumpToTop();
|
||||
if (appbarOffset != null) {
|
||||
if (scrollController.hasClients &&
|
||||
scrollController.offset > appbarOffset!) {
|
||||
scrollController.jumpTo(appbarOffset!);
|
||||
}
|
||||
} else {
|
||||
scrollController.jumpToTop();
|
||||
}
|
||||
return super.onReload();
|
||||
}
|
||||
|
||||
|
||||
@@ -123,11 +123,14 @@ class _DynTopicPageState extends State<DynTopicPage> {
|
||||
}
|
||||
|
||||
Widget _buildAppBar(ThemeData theme, LoadingState<TopDetails?> topState) {
|
||||
late final paddingTop = MediaQuery.paddingOf(context).top;
|
||||
return switch (topState) {
|
||||
Loading() => const SliverAppBar(),
|
||||
Success(:var response) when (topState.dataOrNull != null) =>
|
||||
DynamicSliverAppBarMedium(
|
||||
pinned: true,
|
||||
callback: (value) => _controller.appbarOffset =
|
||||
value - kToolbarHeight - paddingTop - 7,
|
||||
title: IgnorePointer(child: Text(response!.topicItem!.name!)),
|
||||
flexibleSpace: Container(
|
||||
decoration: BoxDecoration(
|
||||
@@ -140,7 +143,7 @@ class _DynTopicPageState extends State<DynTopicPage> {
|
||||
),
|
||||
),
|
||||
padding: EdgeInsets.only(
|
||||
top: MediaQuery.paddingOf(context).top,
|
||||
top: paddingTop,
|
||||
left: 12,
|
||||
right: 12,
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user