refa: settings page

This commit is contained in:
My-Responsitories
2026-06-23 22:07:35 +08:00
parent fa69955b76
commit cd3b0547a2
10 changed files with 64 additions and 246 deletions

View File

@@ -0,0 +1,38 @@
import 'package:PiliPlus/models/common/setting_type.dart';
import 'package:flutter/material.dart';
class CommonSetting extends StatefulWidget {
const CommonSetting({
super.key,
required this.settingType,
this.showAppBar = true,
});
final bool showAppBar;
final SettingType settingType;
@override
State<CommonSetting> createState() => _CommonSettingState();
}
class _CommonSettingState extends State<CommonSetting> {
@override
Widget build(BuildContext context) {
final showAppBar = widget.showAppBar;
final settings = widget.settingType.settings;
final padding = MediaQuery.viewPaddingOf(context);
return Scaffold(
resizeToAvoidBottomInset: false,
appBar: showAppBar ? AppBar(title: Text(widget.settingType.title)) : null,
body: ListView.builder(
padding: EdgeInsets.only(
left: showAppBar ? padding.left : 0,
right: showAppBar ? padding.right : 0,
bottom: padding.bottom + 100,
),
itemCount: settings.length,
itemBuilder: (context, index) => settings[index].widget,
),
);
}
}