This commit is contained in:
NewTab
2022-01-21 20:26:42 +08:00
parent 8c0a5bbb24
commit cb484eeb95
2 changed files with 336 additions and 323 deletions

View File

@@ -5,6 +5,7 @@ import 'package:qinglong_app/base/base_state_widget.dart';
import 'package:qinglong_app/base/routes.dart'; import 'package:qinglong_app/base/routes.dart';
import 'package:qinglong_app/base/theme.dart'; import 'package:qinglong_app/base/theme.dart';
import 'package:qinglong_app/base/ui/abs_underline_tabindicator.dart'; import 'package:qinglong_app/base/ui/abs_underline_tabindicator.dart';
import 'package:qinglong_app/base/ui/empty_widget.dart';
import 'package:qinglong_app/main.dart'; import 'package:qinglong_app/main.dart';
import 'config_viewmodel.dart'; import 'config_viewmodel.dart';
@@ -16,7 +17,8 @@ class ConfigPage extends StatefulWidget {
ConfigPageState createState() => ConfigPageState(); ConfigPageState createState() => ConfigPageState();
} }
class ConfigPageState extends State<ConfigPage> with SingleTickerProviderStateMixin { class ConfigPageState extends State<ConfigPage>
with SingleTickerProviderStateMixin {
TabController? _tabController; TabController? _tabController;
@override @override
@@ -28,7 +30,11 @@ class ConfigPageState extends State<ConfigPage> with SingleTickerProviderStateMi
Widget build(BuildContext context) { Widget build(BuildContext context) {
return BaseStateWidget<ConfigViewModel>( return BaseStateWidget<ConfigViewModel>(
builder: (ref, model, child) { builder: (ref, model, child) {
_tabController ??= TabController(length: model.list.length, vsync: this); if (model.list.isEmpty) {
return const EmptyWidget();
}
_tabController ??=
TabController(length: model.list.length, vsync: this);
return Column( return Column(
children: [ children: [
@@ -60,7 +66,10 @@ class ConfigPageState extends State<ConfigPage> with SingleTickerProviderStateMi
padding: const EdgeInsets.symmetric( padding: const EdgeInsets.symmetric(
horizontal: 15, horizontal: 15,
), ),
theme: ref.watch(themeProvider).themeColor.codeEditorTheme(), theme: ref
.watch(themeProvider)
.themeColor
.codeEditorTheme(),
tabSize: 14, tabSize: 14,
), ),
), ),
@@ -82,7 +91,8 @@ class ConfigPageState extends State<ConfigPage> with SingleTickerProviderStateMi
if (_tabController == null || _tabController!.length == 0) return; if (_tabController == null || _tabController!.length == 0) return;
navigatorState.currentState?.pushNamed(Routes.routeConfigEdit, arguments: { navigatorState.currentState?.pushNamed(Routes.routeConfigEdit, arguments: {
"title": ref.read(configProvider).list[_tabController?.index ?? 0].title, "title": ref.read(configProvider).list[_tabController?.index ?? 0].title,
"content": ref.read(configProvider).content[ref.read(configProvider).list[_tabController?.index ?? 0].title] "content": ref.read(configProvider).content[
ref.read(configProvider).list[_tabController?.index ?? 0].title]
}).then((value) async { }).then((value) async {
if (value != null && (value as String).isNotEmpty) { if (value != null && (value as String).isNotEmpty) {
await ref.read(configProvider).loadContent(value); await ref.read(configProvider).loadContent(value);

View File

@@ -75,7 +75,9 @@ class _ThemePageState extends ConsumerState<ThemePage> {
) )
], ],
), ),
body: Column( body: SafeArea(
bottom: true,
child: Column(
children: [ children: [
const SizedBox( const SizedBox(
height: 15, height: 15,
@@ -436,6 +438,7 @@ class _ThemePageState extends ConsumerState<ThemePage> {
), ),
], ],
), ),
),
); );
} }