mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-07-11 11:50:12 +08:00
refa: settings page
This commit is contained in:
38
lib/pages/setting/common_setting.dart
Normal file
38
lib/pages/setting/common_setting.dart
Normal 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,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user