diff --git a/lib/layout/app_drawer.dart b/lib/layout/app_drawer.dart index 0b1bc56..22a98c9 100644 --- a/lib/layout/app_drawer.dart +++ b/lib/layout/app_drawer.dart @@ -7,7 +7,7 @@ class AppDrawer extends StatelessWidget { DrawerHeader buildDrawerHeader(BuildContext context) { return DrawerHeader( - decoration: BoxDecoration(color: Theme.of(context).primaryColor), + decoration: BoxDecoration(color: Theme.of(context).colorScheme.primary), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ diff --git a/lib/widgets/awesome_dialog.dart b/lib/widgets/awesome_dialog.dart index 3cf2f61..36cb2c4 100644 --- a/lib/widgets/awesome_dialog.dart +++ b/lib/widgets/awesome_dialog.dart @@ -12,7 +12,7 @@ void showAwesomeDialog({ dialogType: DialogType.noHeader, animType: AnimType.scale, body: body, - dialogBackgroundColor: Colors.white, + dialogBackgroundColor: Theme.of(context).colorScheme.surface, btnOkText: "确认", btnCancelText: "取消", btnOkColor: Colors.orange, @@ -25,7 +25,7 @@ void showAwesomeDialog({ onPressed: onOk, style: ElevatedButton.styleFrom( elevation: 0, - backgroundColor: Theme.of(context).primaryColor, + backgroundColor: Theme.of(context).colorScheme.primary, foregroundColor: Colors.white, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(8), diff --git a/lib/widgets/common.dart b/lib/widgets/common.dart index 2aeb774..3603cc0 100644 --- a/lib/widgets/common.dart +++ b/lib/widgets/common.dart @@ -34,6 +34,8 @@ void buildModalBottom({ required String title, required Widget body, }) { + final colors = Theme.of(context).colorScheme; + showModalBottomSheet( context: context, isScrollControlled: true, @@ -52,7 +54,11 @@ void buildModalBottom({ builder: (_, controller) { return Container( decoration: BoxDecoration( - color: Colors.white, + color: colors.surface, + border: Border.all( + color: colors.outline.withAlpha(50), + width: 1, + ), borderRadius: BorderRadius.only( topLeft: Radius.circular(24), topRight: Radius.circular(24), @@ -69,6 +75,25 @@ void buildModalBottom({ ); } +Widget buildModalBottomTitle(BuildContext context, String title) { + return Padding( + padding: EdgeInsets.symmetric(horizontal: 8, vertical: 4), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + title, + style: TextStyle( + fontSize: 20, + color: Theme.of(context).colorScheme.primary, + fontWeight: FontWeight.w700, + ), + ), + ], + ), + ); +} + Widget buildModalBottomBody(BuildContext context, String title, Widget body) { return Column( children: [ @@ -82,23 +107,8 @@ Widget buildModalBottomBody(BuildContext context, String title, Widget body) { borderRadius: BorderRadius.circular(2), ), ), - - // 标题栏 - Padding( - padding: EdgeInsets.symmetric(horizontal: 8, vertical: 4), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - title, - style: TextStyle(fontSize: 20, fontWeight: FontWeight.w700), - ), - ], - ), - ), - + buildModalBottomTitle(context, title), Divider(height: 1, thickness: 1), - Expanded(child: Padding(padding: EdgeInsets.all(12), child: body)), ], ); diff --git a/lib/widgets/flisp_form.dart b/lib/widgets/flisp_form.dart index 79c4f59..b2290e6 100644 --- a/lib/widgets/flisp_form.dart +++ b/lib/widgets/flisp_form.dart @@ -66,6 +66,7 @@ class _FlispFormState extends State { Widget build(BuildContext context) { final int maxContentCount = 100; final provider = Provider.of(context); + final colors = Theme.of(context).colorScheme; Widget buildContentField() { return FormBuilderTextField( @@ -90,10 +91,10 @@ class _FlispFormState extends State { ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), - borderSide: BorderSide(color: Colors.orange), + borderSide: BorderSide(color: colors.primary), ), filled: true, - fillColor: Colors.white, + fillColor: colors.surface, contentPadding: EdgeInsets.symmetric(horizontal: 16, vertical: 14), ), minLines: 4, @@ -193,7 +194,7 @@ class _FlispFormState extends State { width: 48, height: 48, decoration: BoxDecoration( - color: Theme.of(context).primaryColor, + color: colors.primary, borderRadius: BorderRadius.circular(24), ), child: IconButton( diff --git a/lib/widgets/todo_form.dart b/lib/widgets/todo_form.dart index eac3ae7..abcefe4 100644 --- a/lib/widgets/todo_form.dart +++ b/lib/widgets/todo_form.dart @@ -32,13 +32,14 @@ class _TodoFormState extends State { final int maxTitleCount = 10; final int maxContentCount = 20; final provider = Provider.of(context); + final colors = Theme.of(context).colorScheme; Widget buildTitle() { return Row( children: [ Icon( widget.isEditing ? Icons.edit_note : Icons.add_task, - color: Theme.of(context).primaryColor, + color: colors.primary, size: 24, ), SizedBox(width: 8), @@ -47,7 +48,7 @@ class _TodoFormState extends State { style: TextStyle( fontSize: 20, fontWeight: FontWeight.bold, - color: Theme.of(context).primaryColor, + color: colors.primary, ), ), ], @@ -67,10 +68,7 @@ class _TodoFormState extends State { label: RichText( text: TextSpan( text: '标题', - style: TextStyle( - color: Colors.grey.shade700, - fontSize: 16, - ), + style: TextStyle(color: Colors.grey.shade700, fontSize: 16), children: const [ TextSpan( text: '*', @@ -96,10 +94,10 @@ class _TodoFormState extends State { ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), - borderSide: BorderSide(color: Colors.orange), + borderSide: BorderSide(color: colors.primary), ), filled: true, - fillColor: Colors.white, + fillColor: colors.surface, prefixIcon: Icon(Icons.title, color: Colors.blue), contentPadding: EdgeInsets.symmetric(horizontal: 16, vertical: 14), ), @@ -140,10 +138,10 @@ class _TodoFormState extends State { ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), - borderSide: BorderSide(color: Colors.orange), + borderSide: BorderSide(color: colors.primary), ), filled: true, - fillColor: Colors.white, + fillColor: colors.surface, prefixIcon: Icon(Icons.description, color: Colors.green), contentPadding: EdgeInsets.symmetric(horizontal: 16, vertical: 14), ), @@ -203,10 +201,10 @@ class _TodoFormState extends State { ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), - borderSide: BorderSide(color: Colors.orange), + borderSide: BorderSide(color: colors.primary), ), filled: true, - fillColor: Colors.white, + fillColor: colors.surface, contentPadding: EdgeInsets.symmetric(horizontal: 16, vertical: 14), suffixIcon: provider.formItem.dueDate != null @@ -268,10 +266,10 @@ class _TodoFormState extends State { ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), - borderSide: BorderSide(color: Colors.orange), + borderSide: BorderSide(color: colors.primary), ), filled: true, - fillColor: Colors.white, + fillColor: colors.surface, contentPadding: EdgeInsets.symmetric(horizontal: 16, vertical: 14), suffixIcon: provider.formItem.scheduledTime != null @@ -320,7 +318,7 @@ class _TodoFormState extends State { Container buildPriorityField() { return Container( decoration: BoxDecoration( - color: Colors.white, + color: colors.surface, borderRadius: BorderRadius.circular(12), border: Border.all(color: Colors.grey.shade300, width: 1), ),