Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-05-06 14:14:19 +08:00
parent 1a8c348af1
commit 07843a5e77
239 changed files with 3175 additions and 13237 deletions

View File

@@ -2,6 +2,7 @@ import 'package:PiliPlus/common/widgets/button/icon_button.dart';
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.dart';
import 'package:PiliPlus/common/widgets/scroll_physics.dart';
import 'package:PiliPlus/models/common/dm_block_type.dart';
import 'package:PiliPlus/models/user/danmaku_block.dart';
@@ -25,6 +26,7 @@ class DanmakuBlockPage extends StatefulWidget {
class _DanmakuBlockPageState extends State<DanmakuBlockPage> {
final DanmakuBlockController _controller = Get.put(DanmakuBlockController());
late PlPlayerController plPlayerController;
late EdgeInsets padding;
@override
void initState() {
@@ -32,6 +34,12 @@ class _DanmakuBlockPageState extends State<DanmakuBlockPage> {
plPlayerController = Get.arguments as PlPlayerController;
}
@override
void didChangeDependencies() {
super.didChangeDependencies();
padding = MediaQuery.viewPaddingOf(context);
}
@override
void dispose() {
final ruleFilter = RuleFilter.fromRuleTypeEntries(_controller.rules);
@@ -42,8 +50,7 @@ class _DanmakuBlockPageState extends State<DanmakuBlockPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
resizeToAvoidBottomInset: false,
return scaffold(
appBar: AppBar(
title: const Text('弹幕屏蔽'),
bottom: TabBar(
@@ -59,23 +66,33 @@ class _DanmakuBlockPageState extends State<DanmakuBlockPage> {
.toList(),
),
),
body: tabBarView(
controller: _controller.tabController,
children: DmBlockType.values
.map(
(e) => KeepAliveWrapper(
child: Obx(
() => tabViewBuilder(e.index, _controller.rules[e.index]),
),
body: Stack(
clipBehavior: .none,
children: [
tabBarView(
controller: _controller.tabController,
children: DmBlockType.values
.map(
(e) => KeepAliveWrapper(
child: Obx(
() => tabViewBuilder(e.index, _controller.rules[e.index]),
),
),
)
.toList(),
),
Positioned(
right: kFloatingActionButtonMargin,
bottom: padding.bottom + kFloatingActionButtonMargin,
child: FloatingActionButton(
tooltip: '添加',
onPressed: () => _showAddDialog(
DmBlockType.values[_controller.tabController.index],
),
)
.toList(),
),
floatingActionButton: FloatingActionButton(
tooltip: '添加',
onPressed: () =>
_showAddDialog(DmBlockType.values[_controller.tabController.index]),
child: const Icon(Icons.add),
child: const Icon(Icons.add),
),
),
],
),
);
}
@@ -86,9 +103,7 @@ class _DanmakuBlockPageState extends State<DanmakuBlockPage> {
}
return ListView.builder(
itemCount: list.length,
padding: EdgeInsets.only(
bottom: MediaQuery.viewPaddingOf(context).bottom + 100,
),
padding: .only(bottom: padding.bottom + 100),
itemBuilder: (context, itemIndex) {
final SimpleRule item = list[itemIndex];
final child = iconButton(