opt: dyn tab

opt: reload

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-04-15 16:19:33 +08:00
parent 2b567e7cb3
commit 14f8ec37c5
11 changed files with 65 additions and 25 deletions

View File

@@ -171,10 +171,12 @@ class DynamicsController extends GetxController
}
onSelectUp(mid) async {
if (mid == this.mid.value) {
this.mid.refresh();
if (this.mid == mid) {
tabController.index = (mid == -1 ? 0 : 4);
controller.onReload();
return;
}
this.mid.value = mid;
tabController.index = (mid == -1 ? 0 : 4);
}
@@ -194,9 +196,10 @@ class DynamicsController extends GetxController
@override
FutureOr<void> toTopOrRefresh() {
if (scrollController.hasClients && controller.scrollController.hasClients) {
final ctr = controller;
if (scrollController.hasClients && ctr.scrollController.hasClients) {
if (scrollController.position.pixels == 0 &&
controller.scrollController.position.pixels == 0) {
ctr.scrollController.position.pixels == 0) {
return onRefresh();
} else {
animateToTop();

View File

@@ -3,6 +3,7 @@ import 'package:PiliPlus/http/msg.dart';
import 'package:PiliPlus/models/dynamics/result.dart';
import 'package:PiliPlus/pages/common/common_list_controller.dart';
import 'package:PiliPlus/pages/main/controller.dart';
import 'package:PiliPlus/utils/extension.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
@@ -62,4 +63,10 @@ class DynamicsTabController
SmartDialog.showToast(res['msg']);
}
}
@override
Future onReload() {
scrollController.jumpToTop();
return super.onReload();
}
}

View File

@@ -60,9 +60,11 @@ class _DynamicsTabPageState
super.initState();
if (widget.dynamicsType == 'up') {
_listener = dynamicsController.mid.listen((mid) {
controller.mid = mid;
controller.scrollController.jumpTo(0);
controller.onReload();
if (mid != -1) {
controller
..mid = mid
..onReload();
}
});
}
dynamicsWaterfallFlow = GStorage.setting

View File

@@ -1,11 +1,9 @@
import 'package:PiliPlus/models/common/dynamics_type.dart';
import 'package:PiliPlus/models/common/up_panel_position.dart';
import 'package:PiliPlus/pages/dynamics/create_dyn_panel.dart';
import 'package:PiliPlus/pages/dynamics/tab/controller.dart';
import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:PiliPlus/utils/feed_back.dart';
import 'package:PiliPlus/utils/storage.dart';
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
@@ -161,9 +159,7 @@ class _DynamicsPageState extends State<DynamicsPage>
DynamicsType.values.map((e) => Tab(text: e.labels)).toList(),
onTap: (index) {
if (!_dynamicsController.tabController.indexIsChanging) {
feedBack();
Get.find<DynamicsTabController>(tag: tabsConfig[index]['tag'])
.animateToTop();
_dynamicsController.animateToTop();
}
},
),