Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-07-30 13:53:37 +08:00
parent b5b15dbed6
commit c4c0852dea
105 changed files with 2063 additions and 1360 deletions

View File

@@ -1,6 +1,7 @@
import 'package:PiliPlus/common/widgets/dialog/dialog.dart';
import 'package:PiliPlus/common/widgets/keep_alive_wrapper.dart';
import 'package:PiliPlus/common/widgets/loading_widget/loading_widget.dart';
import 'package:PiliPlus/common/widgets/scaffold/simple_scaffold.dart';
import 'package:PiliPlus/common/widgets/scroll_behavior.dart'
show NoOverscrollIndicator;
import 'package:PiliPlus/common/widgets/scroll_physics.dart' show tabBarView;
@@ -85,75 +86,71 @@ class _LiveDmBlockPageState extends State<LiveDmBlockPage> {
),
);
return Scaffold(
resizeToAvoidBottomInset: false,
return SimpleScaffold(
appBar: AppBar(title: const Text('弹幕屏蔽')),
body: Padding(
padding: EdgeInsets.only(left: padding.left, right: padding.right),
child: Stack(
clipBehavior: Clip.none,
children: [
isPortrait
? ExtendedNestedScrollView(
onlyOneScrollInBody: true,
scrollBehavior: const NoOverscrollIndicator(),
headerSliverBuilder: (context, innerBoxIsScrolled) {
return [
SliverToBoxAdapter(child: left),
SliverOverlapAbsorber(
handle:
ExtendedNestedScrollView.sliverOverlapAbsorberHandleFor(
context,
),
sliver: SliverPinnedHeader(child: tabBar),
),
];
},
body: LayoutBuilder(
builder: (context, _) {
return Padding(
padding: EdgeInsets.only(
top:
ExtendedNestedScrollView.sliverOverlapAbsorberHandleFor(
context,
).layoutExtent ??
0,
padding: .only(left: padding.left, right: padding.right),
child: isPortrait
? ExtendedNestedScrollView(
onlyOneScrollInBody: true,
scrollBehavior: const NoOverscrollIndicator(),
headerSliverBuilder: (context, innerBoxIsScrolled) {
return [
SliverToBoxAdapter(child: left),
SliverOverlapAbsorber(
handle:
ExtendedNestedScrollView.sliverOverlapAbsorberHandleFor(
context,
),
child: view,
);
},
sliver: SliverPinnedHeader(child: tabBar),
),
)
: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(child: left),
VerticalDivider(
width: 1,
color: theme.colorScheme.outline.withValues(alpha: 0.1),
];
},
body: LayoutBuilder(
builder: (context, _) {
return Padding(
padding: EdgeInsets.only(
top:
ExtendedNestedScrollView.sliverOverlapAbsorberHandleFor(
context,
).layoutExtent ??
0,
),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
title,
tabBar,
Expanded(child: view),
],
),
),
],
child: view,
);
},
),
)
: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(child: left),
VerticalDivider(
width: 1,
color: theme.colorScheme.outline.withValues(alpha: 0.1),
),
Positioned(
right: kFloatingActionButtonMargin,
bottom: kFloatingActionButtonMargin + padding.bottom,
child: FloatingActionButton(
tooltip: '添加',
onPressed: _addShieldKeyword,
child: const Icon(Icons.add),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
title,
tabBar,
Expanded(child: view),
],
),
),
],
),
),
],
),
fab: Padding(
padding: .only(
right: kFloatingActionButtonMargin + padding.right,
bottom: kFloatingActionButtonMargin + padding.bottom,
),
child: FloatingActionButton(
tooltip: '添加',
onPressed: _addShieldKeyword,
child: const Icon(Icons.add),
),
),
);