Files
PiliPlus/lib/pages/setting/common_setting.dart
My-Responsitories cd3b0547a2 refa: settings page
2026-06-24 20:35:25 +08:00

39 lines
1.1 KiB
Dart

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,
),
);
}
}