mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-05-14 21:24:02 +08:00
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user