refa: article (#757)

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
dom
2025-04-26 14:54:22 +08:00
committed by GitHub
parent 64f7ba2a1a
commit 40fb93f036
87 changed files with 2628 additions and 993 deletions

View File

@@ -1,12 +1,13 @@
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
import 'package:PiliPlus/http/dynamics.dart';
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/models/common/reply_type.dart';
import 'package:PiliPlus/models/dynamics/opus_detail/data.dart';
import 'package:PiliPlus/models/dynamics/result.dart';
import 'package:PiliPlus/pages/common/reply_controller.dart';
import 'package:PiliPlus/utils/id_utils.dart';
import 'package:PiliPlus/utils/storage.dart';
import 'package:get/get.dart';
import 'package:PiliPlus/http/html.dart';
import 'package:PiliPlus/http/reply.dart';
import 'package:fixnum/fixnum.dart' as $fixnum;
@@ -38,12 +39,14 @@ class DynamicDetailController extends ReplyController<MainListReply> {
}
}
// 根据jumpUrl获取动态html
reqHtmlByOpusId(int id) async {
var res = await HtmlHttp.reqHtml(id, 'opus');
type = res['commentType'];
oid = res['commentId'];
queryData();
getCommentParams(int id) async {
var res = await DynamicsHttp.opusDetail(opusId: id);
if (res['status']) {
OpusData data = res['data'];
type = data.item!.basic!.commentType!;
oid = int.parse(data.item!.basic!.commentIdStr!);
queryData();
}
}
@override

View File

@@ -109,8 +109,7 @@ class _DynamicDetailPageState extends State<DynamicDetailPage>
duration: const Duration(milliseconds: 300),
);
_fabAnimationCtr?.forward();
// 滚动事件监听
scrollListener();
_dynamicDetailController.scrollController.addListener(listener);
}
// 页面初始化
@@ -139,7 +138,7 @@ class _DynamicDetailPageState extends State<DynamicDetailPage>
DynamicDetailController(oid, replyType),
tag: Utils.makeHeroTag(opusId),
);
await _dynamicDetailController.reqHtmlByOpusId(opusId!);
await _dynamicDetailController.getCommentParams(opusId!);
setState(() {});
}
} else {
@@ -227,17 +226,22 @@ class _DynamicDetailPageState extends State<DynamicDetailPage>
});
}
// 滑动事件监听
void scrollListener() {
_dynamicDetailController.scrollController.addListener(listener);
@override
void didChangeDependencies() {
super.didChangeDependencies();
WidgetsBinding.instance.addPostFrameCallback((_) {
if (_dynamicDetailController.scrollController.hasClients) {
_visibleTitle.value =
_dynamicDetailController.scrollController.positions.first.pixels >
55;
}
});
}
void listener() {
// 标题
if (_dynamicDetailController.scrollController.positions.length == 1) {
_visibleTitle.value =
_dynamicDetailController.scrollController.offset > 55;
}
_visibleTitle.value =
_dynamicDetailController.scrollController.positions.first.pixels > 55;
// fab按钮
final ScrollDirection direction1 = _dynamicDetailController