mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
feat: later page: multi select
feat: fav detail page: multi select opt: reply item opt: load more Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -6,7 +6,6 @@ import 'package:PiliPalaX/http/loading_state.dart';
|
||||
import 'package:PiliPalaX/pages/video/detail/reply/widgets/reply_item_grpc.dart';
|
||||
import 'package:PiliPalaX/utils/extension.dart';
|
||||
import 'package:PiliPalaX/utils/utils.dart';
|
||||
import 'package:easy_debounce/easy_throttle.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/rendering.dart';
|
||||
import 'package:get/get.dart';
|
||||
@@ -134,15 +133,6 @@ class _DynamicDetailPageState extends State<DynamicDetailPage>
|
||||
void scrollListener() {
|
||||
_dynamicDetailController.scrollController.addListener(
|
||||
() {
|
||||
// 分页加载
|
||||
if (_dynamicDetailController.scrollController.position.pixels >=
|
||||
_dynamicDetailController.scrollController.position.maxScrollExtent -
|
||||
300) {
|
||||
EasyThrottle.throttle('replylist', const Duration(seconds: 2), () {
|
||||
_dynamicDetailController.onLoadMore();
|
||||
});
|
||||
}
|
||||
|
||||
// 标题
|
||||
if (_dynamicDetailController.scrollController.offset > 55 &&
|
||||
!_visibleTitle) {
|
||||
@@ -377,6 +367,7 @@ class _DynamicDetailPageState extends State<DynamicDetailPage>
|
||||
delegate: SliverChildBuilderDelegate(
|
||||
(context, index) {
|
||||
if (index == loadingState.response.replies.length) {
|
||||
_dynamicDetailController.onLoadMore();
|
||||
return Container(
|
||||
alignment: Alignment.center,
|
||||
padding: EdgeInsets.only(
|
||||
|
||||
@@ -21,17 +21,18 @@ class DynamicsTabController extends CommonController {
|
||||
}
|
||||
|
||||
@override
|
||||
Future onRefresh() async {
|
||||
Future onRefresh() {
|
||||
if (dynamicsType == 'all') {
|
||||
mainController.setCount();
|
||||
}
|
||||
offset = '';
|
||||
await queryData();
|
||||
return super.onRefresh();
|
||||
}
|
||||
|
||||
@override
|
||||
bool customHandleResponse(Success response) {
|
||||
offset = response.response.offset;
|
||||
isEnd = response.response.items.isEmpty;
|
||||
if (currentPage != 1 && loadingState.value is Success) {
|
||||
response.response.items
|
||||
.insertAll(0, (loadingState.value as Success).response);
|
||||
|
||||
@@ -47,12 +47,6 @@ class _DynamicsTabPageState extends State<DynamicsTabPage>
|
||||
tag: widget.dynamicsType,
|
||||
);
|
||||
_dynamicsTabController.scrollController.addListener(() {
|
||||
if (_dynamicsTabController.scrollController.position.pixels >=
|
||||
_dynamicsTabController.scrollController.position.maxScrollExtent -
|
||||
200) {
|
||||
_dynamicsTabController.onLoadMore();
|
||||
}
|
||||
|
||||
StreamController<bool> mainStream =
|
||||
Get.find<MainController>().bottomBarStream;
|
||||
StreamController<bool> searchBarStream =
|
||||
@@ -155,10 +149,14 @@ class _DynamicsTabPageState extends State<DynamicsTabPage>
|
||||
crossAxisSpacing: StyleString.cardSpace / 2,
|
||||
mainAxisSpacing: StyleString.cardSpace / 2,
|
||||
|
||||
lastChildLayoutTypeBuilder: (index) =>
|
||||
index == loadingState.response.length
|
||||
? LastChildLayoutType.foot
|
||||
: LastChildLayoutType.none,
|
||||
lastChildLayoutTypeBuilder: (index) {
|
||||
if (index == loadingState.response.length - 1) {
|
||||
_dynamicsTabController.onLoadMore();
|
||||
}
|
||||
return index == loadingState.response.length
|
||||
? LastChildLayoutType.foot
|
||||
: LastChildLayoutType.none;
|
||||
},
|
||||
children: [
|
||||
if (dynamicsController.tabController.index == 4 &&
|
||||
dynamicsController.mid.value != -1) ...[
|
||||
@@ -186,6 +184,9 @@ class _DynamicsTabPageState extends State<DynamicsTabPage>
|
||||
sliver: SliverList(
|
||||
delegate: SliverChildBuilderDelegate(
|
||||
(context, index) {
|
||||
if (index == loadingState.response.length - 1) {
|
||||
_dynamicsTabController.onLoadMore();
|
||||
}
|
||||
if ((dynamicsController.tabController.index == 4 &&
|
||||
dynamicsController.mid.value != -1) ||
|
||||
!dynamicsController.tempBannedList.contains(
|
||||
@@ -196,7 +197,7 @@ class _DynamicsTabPageState extends State<DynamicsTabPage>
|
||||
onRemove: _dynamicsTabController.onRemove,
|
||||
);
|
||||
}
|
||||
return const SizedBox();
|
||||
return const SizedBox.shrink();
|
||||
},
|
||||
childCount: loadingState.response.length,
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user