fix: 添加列表强制滚动

This commit is contained in:
orz12
2024-03-07 10:53:02 +08:00
parent f29d141561
commit e2651f3c82
14 changed files with 66 additions and 44 deletions

View File

@@ -80,6 +80,7 @@ class _BangumiPageState extends State<BangumiPage>
}, },
child: CustomScrollView( child: CustomScrollView(
controller: _bangumidController.scrollController, controller: _bangumidController.scrollController,
physics: const AlwaysScrollableScrollPhysics(),
slivers: [ slivers: [
SliverToBoxAdapter( SliverToBoxAdapter(
child: Obx( child: Obx(

View File

@@ -214,6 +214,7 @@ class _DynamicDetailPageState extends State<DynamicDetailPage>
children: [ children: [
CustomScrollView( CustomScrollView(
controller: scrollController, controller: scrollController,
physics: const AlwaysScrollableScrollPhysics(),
slivers: [ slivers: [
if (action != 'comment') if (action != 'comment')
SliverToBoxAdapter( SliverToBoxAdapter(

View File

@@ -202,6 +202,7 @@ class _DynamicsPageState extends State<DynamicsPage>
body: RefreshIndicator( body: RefreshIndicator(
onRefresh: () => _dynamicsController.onRefresh(), onRefresh: () => _dynamicsController.onRefresh(),
child: CustomScrollView( child: CustomScrollView(
physics: const AlwaysScrollableScrollPhysics(),
controller: _dynamicsController.scrollController, controller: _dynamicsController.scrollController,
slivers: [ slivers: [
FutureBuilder( FutureBuilder(

View File

@@ -63,15 +63,20 @@ class _FavPageState extends State<FavPage> {
if (snapshot.connectionState == ConnectionState.done) { if (snapshot.connectionState == ConnectionState.done) {
Map data = snapshot.data as Map; Map data = snapshot.data as Map;
if (data['status']) { if (data['status']) {
return Obx(() => return Obx(() => CustomScrollView(
CustomScrollView(controller: scrollController, slivers: [ controller: scrollController,
physics: const AlwaysScrollableScrollPhysics(),
slivers: [
SliverGrid( SliverGrid(
gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent( gridDelegate:
SliverGridDelegateWithMaxCrossAxisExtent(
mainAxisSpacing: StyleString.cardSpace, mainAxisSpacing: StyleString.cardSpace,
crossAxisSpacing: StyleString.safeSpace, crossAxisSpacing: StyleString.safeSpace,
maxCrossAxisExtent: Grid.maxRowWidth * 2, maxCrossAxisExtent: Grid.maxRowWidth * 2,
mainAxisExtent: Grid.calculateActualWidth(context, mainAxisExtent: Grid.calculateActualWidth(
Grid.maxRowWidth * 2, StyleString.safeSpace) / context,
Grid.maxRowWidth * 2,
StyleString.safeSpace) /
1.9 / 1.9 /
StyleString.aspectRatio), StyleString.aspectRatio),
delegate: SliverChildBuilderDelegate( delegate: SliverChildBuilderDelegate(

View File

@@ -62,6 +62,7 @@ class _FavDetailPageState extends State<FavDetailPage> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
body: CustomScrollView( body: CustomScrollView(
physics: const AlwaysScrollableScrollPhysics(),
controller: _controller, controller: _controller,
slivers: [ slivers: [
SliverAppBar( SliverAppBar(

View File

@@ -178,6 +178,7 @@ class _HistoryPageState extends State<HistoryPage> {
return; return;
}, },
child: CustomScrollView( child: CustomScrollView(
physics: const AlwaysScrollableScrollPhysics(),
controller: _historyController.scrollController, controller: _historyController.scrollController,
slivers: [ slivers: [
FutureBuilder( FutureBuilder(

View File

@@ -77,6 +77,7 @@ class _HotPageState extends State<HotPage> with AutomaticKeepAliveClientMixin {
return await _hotController.onRefresh(); return await _hotController.onRefresh();
}, },
child: CustomScrollView( child: CustomScrollView(
physics: const AlwaysScrollableScrollPhysics(),
controller: _hotController.scrollController, controller: _hotController.scrollController,
slivers: [ slivers: [
SliverPadding( SliverPadding(

View File

@@ -69,6 +69,7 @@ class _LaterPageState extends State<LaterPage> {
], ],
), ),
body: CustomScrollView( body: CustomScrollView(
physics: const AlwaysScrollableScrollPhysics(),
controller: _laterController.scrollController, controller: _laterController.scrollController,
slivers: [ slivers: [
FutureBuilder( FutureBuilder(

View File

@@ -85,6 +85,7 @@ class _LivePageState extends State<LivePage>
return await _liveController.onRefresh(); return await _liveController.onRefresh();
}, },
child: CustomScrollView( child: CustomScrollView(
physics: const AlwaysScrollableScrollPhysics(),
controller: _liveController.scrollController, controller: _liveController.scrollController,
slivers: [ slivers: [
SliverPadding( SliverPadding(

View File

@@ -62,6 +62,7 @@ class _MemberArchivePageState extends State<MemberArchivePage> {
], ],
), ),
body: CustomScrollView( body: CustomScrollView(
physics: const AlwaysScrollableScrollPhysics(),
controller: _memberArchivesController.scrollController, controller: _memberArchivesController.scrollController,
slivers: [ slivers: [
FutureBuilder( FutureBuilder(

View File

@@ -61,6 +61,7 @@ class _MemberDynamicsPageState extends State<MemberDynamicsPage> {
title: Text('他的动态', style: Theme.of(context).textTheme.titleMedium), title: Text('他的动态', style: Theme.of(context).textTheme.titleMedium),
), ),
body: CustomScrollView( body: CustomScrollView(
physics: const AlwaysScrollableScrollPhysics(),
controller: _memberDynamicController.scrollController, controller: _memberDynamicController.scrollController,
slivers: [ slivers: [
FutureBuilder( FutureBuilder(

View File

@@ -53,15 +53,20 @@ class _SubPageState extends State<SubPage> {
if (snapshot.connectionState == ConnectionState.done) { if (snapshot.connectionState == ConnectionState.done) {
Map? data = snapshot.data; Map? data = snapshot.data;
if (data != null && data['status']) { if (data != null && data['status']) {
return Obx(() => return Obx(() => CustomScrollView(
CustomScrollView(controller: scrollController, slivers: [ controller: scrollController,
physics: const AlwaysScrollableScrollPhysics(),
slivers: [
SliverGrid( SliverGrid(
gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent( gridDelegate:
SliverGridDelegateWithMaxCrossAxisExtent(
mainAxisSpacing: StyleString.cardSpace, mainAxisSpacing: StyleString.cardSpace,
crossAxisSpacing: StyleString.safeSpace, crossAxisSpacing: StyleString.safeSpace,
maxCrossAxisExtent: Grid.maxRowWidth * 2, maxCrossAxisExtent: Grid.maxRowWidth * 2,
mainAxisExtent: Grid.calculateActualWidth(context, mainAxisExtent: Grid.calculateActualWidth(
Grid.maxRowWidth * 2, StyleString.safeSpace) / context,
Grid.maxRowWidth * 2,
StyleString.safeSpace) /
1.9 / 1.9 /
StyleString.aspectRatio), StyleString.aspectRatio),
delegate: SliverChildBuilderDelegate( delegate: SliverChildBuilderDelegate(

View File

@@ -63,6 +63,7 @@ class _SubDetailPageState extends State<SubDetailPage> {
return Scaffold( return Scaffold(
body: CustomScrollView( body: CustomScrollView(
controller: _controller, controller: _controller,
physics: const AlwaysScrollableScrollPhysics(),
slivers: [ slivers: [
SliverAppBar( SliverAppBar(
expandedHeight: 260 - MediaQuery.of(context).padding.top, expandedHeight: 260 - MediaQuery.of(context).padding.top,

View File

@@ -109,6 +109,7 @@ class _VideoReplyReplyPanelState extends State<VideoReplyReplyPanel> {
}, },
child: CustomScrollView( child: CustomScrollView(
controller: _videoReplyReplyController.scrollController, controller: _videoReplyReplyController.scrollController,
physics: const AlwaysScrollableScrollPhysics(),
slivers: <Widget>[ slivers: <Widget>[
if (widget.firstFloor != null) ...[ if (widget.firstFloor != null) ...[
// const SliverToBoxAdapter(child: SizedBox(height: 10)), // const SliverToBoxAdapter(child: SizedBox(height: 10)),