mirror of
https://github.com/nisrulz/flutter-examples.git
synced 2026-09-03 05:31:21 +00:00
- Bump all apps to sdk >=3.0.0 <4.0.0 and add flutter_lints + a shared analysis_options.yaml to every app (flutter analyze is now green repo-wide) - Fix real compile errors in firebase_google_authentication and image_editor, plus deprecated APIs (Matrix4, SvgPicture.color, textScaleFactor), missing async 'mounted' guards, and misc lints via dart fix + manual fixes - Align pubspec 'name' with each folder and Android namespace/applicationId with the documented github.nisrulz.* convention - Convert bmi_calculator from a legacy Flutter module to a standard app with a proper android/ scaffold; fix missing android:exported in launcher manifests across 22 apps so all Android builds pass - Untrack generated build files (GeneratedPluginRegistrant, .flutter-plugins-dependencies) and ignore them
67 lines
1.7 KiB
Dart
67 lines
1.7 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:navigation_drawer/screens/account.dart';
|
|
import 'package:navigation_drawer/screens/settings.dart';
|
|
|
|
class HomeScreen extends StatefulWidget {
|
|
const HomeScreen({super.key});
|
|
|
|
@override
|
|
HomeScreenState createState() => HomeScreenState();
|
|
}
|
|
|
|
class HomeScreenState extends State<HomeScreen> {
|
|
Drawer getNavDrawer(BuildContext context) {
|
|
var headerChild = DrawerHeader(child: Text("Header"));
|
|
var aboutChild = AboutListTile(
|
|
applicationName: "Application Name",
|
|
applicationVersion: "v1.0.0",
|
|
applicationIcon: Icon(Icons.adb),
|
|
icon: Icon(Icons.info),
|
|
child: Text("About"));
|
|
|
|
ListTile getNavItem(var icon, String s, String routeName) {
|
|
return ListTile(
|
|
leading: Icon(icon),
|
|
title: Text(s),
|
|
onTap: () {
|
|
setState(() {
|
|
// pop closes the drawer
|
|
Navigator.of(context).pop();
|
|
// navigate to the route
|
|
Navigator.of(context).pushNamed(routeName);
|
|
});
|
|
},
|
|
);
|
|
}
|
|
|
|
var myNavChildren = [
|
|
headerChild,
|
|
getNavItem(Icons.settings, "Settings", SettingsScreen.routeName),
|
|
getNavItem(Icons.home, "Home", "/"),
|
|
getNavItem(Icons.account_box, "Account", AccountScreen.routeName),
|
|
aboutChild
|
|
];
|
|
|
|
ListView listView = ListView(children: myNavChildren);
|
|
|
|
return Drawer(
|
|
child: listView,
|
|
);
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
appBar: AppBar(
|
|
title: Text("Navigation Drawer Example"),
|
|
),
|
|
body: Container(
|
|
child: Center(
|
|
child: Text("Home Screen"),
|
|
)),
|
|
// Set the nav drawer
|
|
drawer: getNavDrawer(context),
|
|
);
|
|
}
|
|
}
|