opt: RefreshIndicator

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2024-11-08 10:15:39 +08:00
parent 04a0e39980
commit 1a5639006b
26 changed files with 62 additions and 25 deletions

View File

@@ -0,0 +1,12 @@
import 'package:flutter/material.dart';
Widget refreshIndicator({
required RefreshCallback onRefresh,
required Widget child,
}) {
return RefreshIndicator(
displacement: 20,
onRefresh: onRefresh,
child: child,
);
}

View File

@@ -1,5 +1,6 @@
import 'dart:async';
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:PiliPalaX/http/loading_state.dart';
import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart';
@@ -68,7 +69,7 @@ class _BangumiPageState extends State<BangumiPage>
@override
Widget build(BuildContext context) {
super.build(context);
return RefreshIndicator(
return refreshIndicator(
onRefresh: () async {
await _bangumiController.onRefresh();
await _bangumiController.queryBangumiFollow();

View File

@@ -1,3 +1,4 @@
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:PiliPalaX/http/loading_state.dart';
import 'package:PiliPalaX/pages/common/common_controller.dart';
import 'package:flutter/material.dart';
@@ -61,7 +62,7 @@ class _BlackListPageState extends State<BlackListPage> {
),
),
),
body: RefreshIndicator(
body: refreshIndicator(
onRefresh: () async => await _blackListController.onRefresh(),
child: Obx(() => _buildBody(_blackListController.loadingState.value)),
),

View File

@@ -1,6 +1,7 @@
import 'dart:async';
import 'dart:math';
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:PiliPalaX/http/loading_state.dart';
import 'package:PiliPalaX/pages/video/detail/reply/widgets/reply_item_grpc.dart';
import 'package:easy_debounce/easy_throttle.dart';
@@ -213,7 +214,7 @@ class _DynamicDetailPageState extends State<DynamicDetailPage>
),
// actions: _detailModel != null ? appBarAction() : [],
),
body: RefreshIndicator(
body: refreshIndicator(
onRefresh: () async {
await _dynamicDetailController.onRefresh();
},

View File

@@ -1,5 +1,6 @@
import 'dart:async';
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:PiliPalaX/http/loading_state.dart';
import 'package:PiliPalaX/pages/home/controller.dart';
import 'package:PiliPalaX/pages/main/controller.dart';
@@ -89,7 +90,7 @@ class _DynamicsTabPageState extends State<DynamicsTabPage>
Widget build(BuildContext context) {
super.build(context);
// print(widget.dynamicsType + widget.mid.value.toString());
return RefreshIndicator(
return refreshIndicator(
// key:
// ValueKey<String>(widget.dynamicsType + widget.mid.value.toString()),
onRefresh: () async {

View File

@@ -1,3 +1,4 @@
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:PiliPalaX/http/loading_state.dart';
import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart';
@@ -57,7 +58,7 @@ class _FansPageState extends State<FansPage> {
style: Theme.of(context).textTheme.titleMedium,
),
),
body: RefreshIndicator(
body: refreshIndicator(
onRefresh: () async => await _fansController.onRefresh(),
child: CustomScrollView(
physics: const AlwaysScrollableScrollPhysics(),

View File

@@ -1,3 +1,4 @@
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
@@ -48,7 +49,7 @@ class _FollowListState extends State<FollowList> {
@override
Widget build(BuildContext context) {
return RefreshIndicator(
return refreshIndicator(
onRefresh: () async => await widget.ctr.queryFollowings('init'),
child: FutureBuilder(
future: _futureBuilderFuture,

View File

@@ -1,3 +1,4 @@
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
@@ -78,7 +79,7 @@ class _OwnerFollowListState extends State<OwnerFollowList>
@override
Widget build(BuildContext context) {
super.build(context);
return RefreshIndicator(
return refreshIndicator(
onRefresh: () async => await followUpGroup('init'),
child: FutureBuilder(
future: _futureBuilderFuture,

View File

@@ -1,3 +1,4 @@
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:PiliPalaX/pages/fav_search/view.dart' show SearchType;
import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart';
@@ -176,7 +177,7 @@ class _HistoryPageState extends State<HistoryPage> {
],
),
),
body: RefreshIndicator(
body: refreshIndicator(
onRefresh: () async {
await _historyController.onRefresh();
return;

View File

@@ -1,5 +1,6 @@
import 'dart:async';
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:PiliPalaX/common/widgets/video_card_h_grpc.dart';
import 'package:PiliPalaX/http/loading_state.dart';
import 'package:flutter/material.dart';
@@ -65,7 +66,7 @@ class _HotPageState extends State<HotPage> with AutomaticKeepAliveClientMixin {
@override
Widget build(BuildContext context) {
super.build(context);
return RefreshIndicator(
return refreshIndicator(
onRefresh: () async {
return await _hotController.onRefresh();
},

View File

@@ -1,4 +1,5 @@
import 'package:PiliPalaX/common/constants.dart';
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:PiliPalaX/common/widgets/http_error.dart';
import 'package:PiliPalaX/common/widgets/network_img_layer.dart';
import 'package:PiliPalaX/http/loading_state.dart';
@@ -43,7 +44,7 @@ class _MemberArticleState extends State<MemberArticle>
? MediaQuery.removePadding(
context: context,
removeTop: true,
child: RefreshIndicator(
child: refreshIndicator(
onRefresh: () async {
await _controller.onRefresh();
},

View File

@@ -1,4 +1,5 @@
import 'package:PiliPalaX/common/constants.dart';
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:PiliPalaX/common/widgets/http_error.dart';
import 'package:PiliPalaX/http/loading_state.dart';
import 'package:PiliPalaX/pages/bangumi/widgets/bangumi_card_v_member_home.dart';
@@ -42,7 +43,7 @@ class _MemberBangumiState extends State<MemberBangumi>
_buildBody(LoadingState loadingState) {
return loadingState is Success
? RefreshIndicator(
? refreshIndicator(
onRefresh: () async {
await _controller.onRefresh();
},

View File

@@ -1,5 +1,6 @@
import 'package:PiliPalaX/common/constants.dart';
import 'package:PiliPalaX/common/widgets/badge.dart';
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:PiliPalaX/common/widgets/http_error.dart';
import 'package:PiliPalaX/common/widgets/network_img_layer.dart';
import 'package:PiliPalaX/http/loading_state.dart';
@@ -44,7 +45,7 @@ class _MemberFavoriteState extends State<MemberFavorite>
_buildBody(LoadingState loadingState) {
return loadingState is Success
? RefreshIndicator(
? refreshIndicator(
onRefresh: () async {
await _controller.onRefresh();
},

View File

@@ -1,4 +1,5 @@
import 'package:PiliPalaX/common/constants.dart';
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:PiliPalaX/common/widgets/http_error.dart';
import 'package:PiliPalaX/common/widgets/video_card_h_member_video.dart';
import 'package:PiliPalaX/http/loading_state.dart';
@@ -54,7 +55,7 @@ class _MemberVideoState extends State<MemberVideo>
_buildBody(LoadingState loadingState) {
return loadingState is Success && loadingState.response is List
? RefreshIndicator(
? refreshIndicator(
onRefresh: () async {
await _controller.onRefresh();
},

View File

@@ -1,3 +1,4 @@
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:PiliPalaX/common/widgets/http_error.dart';
import 'package:PiliPalaX/http/loading_state.dart';
import 'package:PiliPalaX/pages/dynamics/widgets/dynamic_panel_grpc.dart';
@@ -39,7 +40,7 @@ class _MemberDynamicState extends State<MemberDynamic>
_buildBody(LoadingState loadingState) {
return loadingState is Success
? RefreshIndicator(
? refreshIndicator(
onRefresh: () async {
await _controller.onRefresh();
},

View File

@@ -1,3 +1,4 @@
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
@@ -47,7 +48,7 @@ class _AtMePageState extends State<AtMePage> {
appBar: AppBar(
title: const Text('@我的'),
),
body: RefreshIndicator(
body: refreshIndicator(
onRefresh: () async {
await _atMeController.onRefresh();
},

View File

@@ -1,3 +1,4 @@
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
@@ -48,7 +49,7 @@ class _LikeMePageState extends State<LikeMePage> {
appBar: AppBar(
title: const Text('收到的赞'),
),
body: RefreshIndicator(
body: refreshIndicator(
onRefresh: () async {
await _likeMeController.onRefresh();
},

View File

@@ -1,3 +1,4 @@
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
@@ -48,7 +49,7 @@ class _ReplyMePageState extends State<ReplyMePage> {
appBar: AppBar(
title: const Text('回复我的'),
),
body: RefreshIndicator(
body: refreshIndicator(
onRefresh: () async {
await _replyMeController.onRefresh();
},

View File

@@ -1,5 +1,6 @@
import 'dart:convert';
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:PiliPalaX/utils/app_scheme.dart';
import 'package:PiliPalaX/utils/utils.dart';
import 'package:easy_debounce/easy_throttle.dart';
@@ -51,7 +52,7 @@ class _SysMsgPageState extends State<SysMsgPage> {
appBar: AppBar(
title: const Text('系统通知'),
),
body: RefreshIndicator(
body: refreshIndicator(
onRefresh: () async {
await _sysMsgController.onRefresh();
},

View File

@@ -1,5 +1,6 @@
import 'dart:async';
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:PiliPalaX/http/loading_state.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
@@ -64,7 +65,7 @@ class _ZonePageState extends State<ZonePage>
@override
Widget build(BuildContext context) {
super.build(context);
return RefreshIndicator(
return refreshIndicator(
onRefresh: () async {
return await _zoneController.onRefresh();
},

View File

@@ -1,5 +1,6 @@
import 'dart:async';
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:PiliPalaX/http/loading_state.dart';
import 'package:PiliPalaX/models/common/tab_type.dart';
import 'package:PiliPalaX/pages/common/popup_controller.dart';
@@ -83,7 +84,7 @@ class _RcmdPageState extends State<RcmdPage>
decoration: const BoxDecoration(
borderRadius: BorderRadius.all(StyleString.imgRadius),
),
child: RefreshIndicator(
child: refreshIndicator(
onRefresh: () async {
await _controller.onRefresh();
},

View File

@@ -1,3 +1,4 @@
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:PiliPalaX/http/loading_state.dart';
import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart';
@@ -65,7 +66,7 @@ class _SearchPanelState extends State<SearchPanel>
@override
Widget build(BuildContext context) {
super.build(context);
return RefreshIndicator(
return refreshIndicator(
onRefresh: () async {
await _searchPanelController.onRefresh();
},

View File

@@ -1,3 +1,4 @@
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:PiliPalaX/common/widgets/http_error.dart';
import 'package:PiliPalaX/http/loading_state.dart';
import 'package:PiliPalaX/pages/video/detail/reply/widgets/reply_item_grpc.dart';
@@ -119,7 +120,7 @@ class _VideoReplyPanelState extends State<VideoReplyPanel>
@override
Widget build(BuildContext context) {
super.build(context);
return RefreshIndicator(
return refreshIndicator(
onRefresh: () async {
await _videoReplyController.onRefresh();
},

View File

@@ -1,3 +1,4 @@
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:PiliPalaX/grpc/app/main/community/reply/v1/reply.pb.dart';
import 'package:PiliPalaX/http/loading_state.dart';
import 'package:PiliPalaX/pages/video/detail/reply/widgets/reply_item_grpc.dart';
@@ -127,7 +128,7 @@ class _VideoReplyReplyPanelState extends State<VideoReplyReplyPanel> {
color: Theme.of(context).dividerColor.withOpacity(0.1),
),
Expanded(
child: RefreshIndicator(
child: refreshIndicator(
onRefresh: () async {
await _videoReplyReplyController.onRefresh();
},

View File

@@ -1,3 +1,4 @@
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
@@ -67,7 +68,7 @@ class _WhisperPageState extends State<WhisperPage> {
const SizedBox(width: 12)
],
),
body: RefreshIndicator(
body: refreshIndicator(
onRefresh: () async {
await _whisperController.queryMsgFeedUnread();
await _whisperController.onRefresh();

View File

@@ -1,6 +1,7 @@
import 'dart:async';
import 'dart:io';
import 'dart:math';
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:PiliPalaX/http/msg.dart';
import 'package:PiliPalaX/pages/emote/view.dart';
import 'package:PiliPalaX/pages/video/detail/reply_new/reply_page.dart';
@@ -153,7 +154,7 @@ class _WhisperDetailPageState extends State<WhisperDetailPage> {
child: CircularProgressIndicator(),
);
}
return RefreshIndicator(
return refreshIndicator(
onRefresh: _whisperDetailController.querySessionMsg,
child: ListView.builder(
shrinkWrap: true,