mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-07-17 14:50:12 +08:00
@@ -1,3 +1,4 @@
|
||||
import 'package:PiliPlus/common/widgets/flutter/scroll_view/scroll_view.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/selectable_text/text.dart';
|
||||
import 'package:PiliPlus/common/widgets/gesture/tap_gesture_recognizer.dart';
|
||||
import 'package:PiliPlus/models_new/video/video_ai_conclusion/model_result.dart';
|
||||
@@ -26,7 +27,7 @@ class AiConclusionPanel extends CommonSlidePage {
|
||||
Key? key,
|
||||
bool tap = true,
|
||||
}) {
|
||||
return CustomScrollView(
|
||||
return customScrollView(
|
||||
key: key,
|
||||
shrinkWrap: !tap,
|
||||
physics: const AlwaysScrollableScrollPhysics(),
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:PiliPlus/common/assets.dart';
|
||||
import 'package:PiliPlus/common/style.dart';
|
||||
import 'package:PiliPlus/common/widgets/badge.dart';
|
||||
import 'package:PiliPlus/common/widgets/dialog/dialog.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/scroll_view/scroll_view.dart';
|
||||
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
|
||||
import 'package:PiliPlus/common/widgets/stat/stat.dart';
|
||||
import 'package:PiliPlus/models/common/badge_type.dart';
|
||||
@@ -175,7 +176,7 @@ class _DownloadPanelState extends State<DownloadPanel> {
|
||||
return Expanded(
|
||||
child: Material(
|
||||
type: MaterialType.transparency,
|
||||
child: CustomScrollView(
|
||||
child: customScrollView(
|
||||
controller: widget.scrollController,
|
||||
slivers: [
|
||||
SliverPadding(
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'package:PiliPlus/common/widgets/flutter/page/tabs.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/scroll_view/scroll_view.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/selectable_text/text.dart';
|
||||
import 'package:PiliPlus/common/widgets/keep_alive_wrapper.dart';
|
||||
import 'package:PiliPlus/common/widgets/scroll_physics.dart';
|
||||
@@ -117,7 +118,7 @@ class _IntroDetailState extends State<PgcIntroPanel>
|
||||
final TextStyle textStyle = TextStyle(
|
||||
color: theme.colorScheme.onSurfaceVariant,
|
||||
);
|
||||
return ListView(
|
||||
return listView(
|
||||
controller: _controller,
|
||||
physics: const AlwaysScrollableScrollPhysics(),
|
||||
padding: EdgeInsets.only(
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:PiliPlus/common/widgets/badge.dart';
|
||||
import 'package:PiliPlus/common/widgets/button/icon_button.dart';
|
||||
import 'package:PiliPlus/common/widgets/dialog/dialog.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/scroll_view/scroll_view.dart';
|
||||
import 'package:PiliPlus/common/widgets/image/image_save.dart';
|
||||
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
|
||||
import 'package:PiliPlus/common/widgets/stat/stat.dart';
|
||||
@@ -120,7 +121,7 @@ class _MediaListPanelState extends State<MediaListPanel>
|
||||
|
||||
Widget _buildList(ThemeData theme) {
|
||||
final showDelBtn = widget.onDelete != null && widget.mediaList.length > 1;
|
||||
return CustomScrollView(
|
||||
return customScrollView(
|
||||
controller: _controller,
|
||||
physics: const AlwaysScrollableScrollPhysics(),
|
||||
slivers: [
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:PiliPlus/common/skeleton/video_card_h.dart';
|
||||
import 'package:PiliPlus/common/style.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/scroll_view/scroll_view.dart';
|
||||
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
|
||||
import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
|
||||
import 'package:PiliPlus/common/widgets/loading_widget/loading_widget.dart';
|
||||
@@ -89,7 +90,7 @@ class _HorizontalMemberPageState extends State<HorizontalMemberPage> {
|
||||
Expanded(
|
||||
child: refreshIndicator(
|
||||
onRefresh: _controller.onRefresh,
|
||||
child: CustomScrollView(
|
||||
child: customScrollView(
|
||||
controller: _controller.scrollController,
|
||||
physics: const AlwaysScrollableScrollPhysics(),
|
||||
slivers: [
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:PiliPlus/common/skeleton/video_reply.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/scroll_view/scroll_view.dart';
|
||||
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
|
||||
import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
|
||||
import 'package:PiliPlus/http/loading_state.dart';
|
||||
@@ -109,7 +110,7 @@ class _NoteListPageState extends State<NoteListPage>
|
||||
Widget buildList(ThemeData theme) {
|
||||
Widget child = refreshIndicator(
|
||||
onRefresh: _controller.onRefresh,
|
||||
child: CustomScrollView(
|
||||
child: customScrollView(
|
||||
key: _key,
|
||||
physics: const AlwaysScrollableScrollPhysics(),
|
||||
slivers: [
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'dart:async';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:PiliPlus/common/widgets/button/icon_button.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/scroll_view/scroll_view.dart';
|
||||
import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
|
||||
import 'package:PiliPlus/common/widgets/pair.dart';
|
||||
import 'package:PiliPlus/http/loading_state.dart';
|
||||
@@ -252,7 +253,7 @@ class _PostPanelState extends State<PostPanel>
|
||||
return const HttpError(isSliver: false);
|
||||
}
|
||||
final bottom = MediaQuery.viewPaddingOf(context).bottom;
|
||||
Widget child = ListView.builder(
|
||||
Widget child = ExtendedListView.builder(
|
||||
key: _key,
|
||||
physics: const AlwaysScrollableScrollPhysics(),
|
||||
padding: EdgeInsets.only(bottom: 88 + bottom),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:PiliPlus/common/skeleton/video_reply.dart';
|
||||
import 'package:PiliPlus/common/style.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/scroll_view/scroll_view.dart';
|
||||
import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
|
||||
import 'package:PiliPlus/common/widgets/sliver/sliver_floating_header.dart';
|
||||
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart'
|
||||
@@ -82,7 +83,7 @@ class _VideoReplyPanelState extends State<VideoReplyPanel>
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
CustomScrollView(
|
||||
customScrollView(
|
||||
controller: widget.isNested
|
||||
? null
|
||||
: _videoReplyController.scrollController,
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:PiliPlus/common/skeleton/video_reply.dart';
|
||||
import 'package:PiliPlus/common/style.dart';
|
||||
import 'package:PiliPlus/common/widgets/colored_box_transition.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/scroll_view/scroll_view.dart';
|
||||
import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
|
||||
import 'package:PiliPlus/common/widgets/sliver/sliver_pinned_header.dart';
|
||||
import 'package:PiliPlus/common/widgets/view_safe_area.dart';
|
||||
@@ -186,7 +187,7 @@ class _VideoReplyReplyPanelState extends State<VideoReplyReplyPanel>
|
||||
final child = refreshIndicator(
|
||||
onRefresh: _controller.onRefresh,
|
||||
isClampingScrollPhysics: widget.isNested,
|
||||
child: CustomScrollView(
|
||||
child: customScrollView(
|
||||
key: ValueKey(scrollController.hashCode),
|
||||
controller: scrollController,
|
||||
physics: const AlwaysScrollableScrollPhysics(),
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/scroll_view/scroll_view.dart';
|
||||
import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
|
||||
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart'
|
||||
show SearchItem;
|
||||
@@ -33,7 +34,7 @@ class _ReplySearchChildPageState extends State<ReplySearchChildPage>
|
||||
super.build(context);
|
||||
return refreshIndicator(
|
||||
onRefresh: _controller.onRefresh,
|
||||
child: CustomScrollView(
|
||||
child: customScrollView(
|
||||
controller: _controller.scrollController,
|
||||
physics: const AlwaysScrollableScrollPhysics(),
|
||||
slivers: [
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:PiliPlus/common/widgets/button/icon_button.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/scroll_view/scroll_view.dart';
|
||||
import 'package:PiliPlus/common/widgets/view_safe_area.dart';
|
||||
import 'package:PiliPlus/http/danmaku.dart';
|
||||
import 'package:PiliPlus/http/loading_state.dart';
|
||||
@@ -179,7 +180,7 @@ class _SendDanmakuPanelState extends CommonTextPubPageState<SendDanmakuPanel> {
|
||||
),
|
||||
),
|
||||
),
|
||||
child: ListView(
|
||||
child: listView(
|
||||
physics: const ClampingScrollPhysics(),
|
||||
padding: .only(
|
||||
top: 12,
|
||||
|
||||
@@ -7,6 +7,7 @@ import 'package:PiliPlus/common/assets.dart';
|
||||
import 'package:PiliPlus/common/style.dart';
|
||||
import 'package:PiliPlus/common/widgets/custom_icon.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/pop_scope.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/scroll_view/scroll_view.dart';
|
||||
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
|
||||
import 'package:PiliPlus/common/widgets/keep_alive_wrapper.dart';
|
||||
import 'package:PiliPlus/common/widgets/route_aware_mixin.dart';
|
||||
@@ -1017,7 +1018,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
localIntroPanel()
|
||||
else if (showIntro)
|
||||
KeepAliveWrapper(
|
||||
child: CustomScrollView(
|
||||
child: customScrollView(
|
||||
key: const PageStorageKey(CommonIntroController),
|
||||
controller:
|
||||
videoDetailController.effectiveIntroScrollCtr,
|
||||
@@ -1676,7 +1677,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
Widget localIntroPanel({
|
||||
bool needCtr = true,
|
||||
}) {
|
||||
return CustomScrollView(
|
||||
return customScrollView(
|
||||
controller: needCtr
|
||||
? videoDetailController.effectiveIntroScrollCtr
|
||||
: null,
|
||||
@@ -1708,7 +1709,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
return localIntroPanel(needCtr: needCtr);
|
||||
}
|
||||
Widget introPanel() {
|
||||
Widget child = CustomScrollView(
|
||||
Widget child = customScrollView(
|
||||
key: const PageStorageKey(CommonIntroController),
|
||||
controller: needCtr
|
||||
? videoDetailController.effectiveIntroScrollCtr
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:PiliPlus/common/style.dart';
|
||||
import 'package:PiliPlus/common/widgets/button/icon_button.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/scroll_view/scroll_view.dart';
|
||||
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
|
||||
import 'package:PiliPlus/common/widgets/progress_bar/segment_progress_bar.dart';
|
||||
import 'package:PiliPlus/pages/common/slide/common_slide_page.dart';
|
||||
@@ -91,7 +92,7 @@ class _ViewPointsPageState extends State<ViewPointsPage>
|
||||
|
||||
@override
|
||||
Widget buildList(ThemeData theme) {
|
||||
final child = ListView.builder(
|
||||
final child = ExtendedListView.builder(
|
||||
key: _key,
|
||||
physics: const AlwaysScrollableScrollPhysics(),
|
||||
padding: EdgeInsets.only(
|
||||
|
||||
Reference in New Issue
Block a user