flutter_project_kit 0.0.1
flutter_project_kit: ^0.0.1 copied to clipboard
'Package Description Overview The App Essentials Package is a comprehensive solution designed to streamline and enhance your Flutter application development process. This package handles critical aspe [...]
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:flutter_project_kit/provider/app_theme_provider.dart';
import 'package:flutter_project_kit/theme/app_theme.dart';
import 'package:flutter_project_kit/theme/project_kit.dart';
import 'package:provider/provider.dart';
import 'package:flutter_project_kit/theme/core_theme.dart' as theme;
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [ChangeNotifierProvider(create: (_) => AppThemeProvider())],
child: Consumer<AppThemeProvider>(
builder: (context, value, _) => HomePage(
provider: value,
),
),
);
}
}
class HomePage extends StatefulWidget {
final AppThemeProvider? provider;
const HomePage({super.key, this.provider});
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
bool lightTheme = true;
void initAppTheme() {
ProjectKit.initialize(context);
}
@override
void didChangeDependencies() {
initAppTheme();
super.didChangeDependencies();
}
@override
Widget build(BuildContext context) {
final appProvider = Provider.of<AppThemeProvider>(context, listen: false);
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Muhammad Rauf',
theme: theme.themeLight,
darkTheme: theme.themeDark,
themeMode: widget.provider!.themeMode,
home: Scaffold(
body: Container(
color: AppTheme.cT.scaffold,
child: Center(
child: Text("New Text for testing",
style: TextStyle(color: AppTheme.cT.accent)),
),
),
floatingActionButton: ElevatedButton(
onPressed: () {
lightTheme = !lightTheme;
appProvider.setTheme(
lightTheme ? ThemeMode.light : ThemeMode.dark, context);
},
child: const Text("ChangeTheme"),
),
),
);
}
}