mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-28 09:47:35 +08:00
Add a dark mode switcher in the App Drawer
Inspired by Telegram, though our animation is not as fancy. Related to #121
This commit is contained in:
@ -2,6 +2,7 @@ import 'dart:io';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:dynamic_theme/dynamic_theme.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter_email_sender/flutter_email_sender.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
@ -299,6 +300,16 @@ class _AppDrawerHeader extends StatelessWidget {
|
||||
child: ProButton(),
|
||||
),
|
||||
),
|
||||
Positioned.fill(
|
||||
child: Align(
|
||||
alignment: Alignment.topRight,
|
||||
child: SafeArea(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.fromLTRB(0, 16, 16, 0),
|
||||
child: ThemeSwitcherButton(),
|
||||
)),
|
||||
),
|
||||
),
|
||||
],
|
||||
fit: StackFit.passthrough,
|
||||
);
|
||||
@ -326,3 +337,20 @@ class ProButton extends StatelessWidget {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class ThemeSwitcherButton extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return GestureDetector(
|
||||
child: const FaIcon(FontAwesomeIcons.solidMoon),
|
||||
onTap: () {
|
||||
var dynamicTheme = DynamicTheme.of(context);
|
||||
var brightness = dynamicTheme.brightness;
|
||||
|
||||
dynamicTheme.setBrightness(brightness == Brightness.light
|
||||
? Brightness.dark
|
||||
: Brightness.light);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user