Add template drawer page to main.dart
This commit is contained in:
		
							parent
							
								
									ee4febd718
								
							
						
					
					
						commit
						5584f44b92
					
				
							
								
								
									
										184
									
								
								lib/main.dart
									
									
									
									
									
								
							
							
						
						
									
										184
									
								
								lib/main.dart
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -1,111 +1,127 @@
 | 
			
		|||
import 'dart:async';
 | 
			
		||||
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:flutter/services.dart';
 | 
			
		||||
 | 
			
		||||
void main() {
 | 
			
		||||
  runApp(const MyApp());
 | 
			
		||||
  runApp(MyApp());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class MyApp extends StatelessWidget {
 | 
			
		||||
  const MyApp({super.key});
 | 
			
		||||
 | 
			
		||||
  // This widget is the root of your application.
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return MaterialApp(
 | 
			
		||||
      title: 'Flutter Demo',
 | 
			
		||||
      title: 'Gym App',
 | 
			
		||||
      theme: ThemeData(
 | 
			
		||||
        // This is the theme of your application.
 | 
			
		||||
        //
 | 
			
		||||
        // Try running your application with "flutter run". You'll see the
 | 
			
		||||
        // application has a blue toolbar. Then, without quitting the app, try
 | 
			
		||||
        // changing the primarySwatch below to Colors.green and then invoke
 | 
			
		||||
        // "hot reload" (press "r" in the console where you ran "flutter run",
 | 
			
		||||
        // or simply save your changes to "hot reload" in a Flutter IDE).
 | 
			
		||||
        // Notice that the counter didn't reset back to zero; the application
 | 
			
		||||
        // is not restarted.
 | 
			
		||||
        primarySwatch: Colors.blue,
 | 
			
		||||
        visualDensity: VisualDensity.adaptivePlatformDensity,
 | 
			
		||||
      ),
 | 
			
		||||
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
 | 
			
		||||
      home: HomePage(),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class MyHomePage extends StatefulWidget {
 | 
			
		||||
  const MyHomePage({super.key, required this.title});
 | 
			
		||||
 | 
			
		||||
  // This widget is the home page of your application. It is stateful, meaning
 | 
			
		||||
  // that it has a State object (defined below) that contains fields that affect
 | 
			
		||||
  // how it looks.
 | 
			
		||||
 | 
			
		||||
  // This class is the configuration for the state. It holds the values (in this
 | 
			
		||||
  // case the title) provided by the parent (in this case the App widget) and
 | 
			
		||||
  // used by the build method of the State. Fields in a Widget subclass are
 | 
			
		||||
  // always marked "final".
 | 
			
		||||
 | 
			
		||||
  final String title;
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  State<MyHomePage> createState() => _MyHomePageState();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class _MyHomePageState extends State<MyHomePage> {
 | 
			
		||||
  static const platform = MethodChannel('com.massive/android');
 | 
			
		||||
 | 
			
		||||
  Future<void> _timer() async {
 | 
			
		||||
    await platform.invokeMethod('timer', [3000]);
 | 
			
		||||
  }
 | 
			
		||||
class HomePage extends StatelessWidget {
 | 
			
		||||
  final List<String> _pageTitles = [
 | 
			
		||||
    'Home',
 | 
			
		||||
    'Plans',
 | 
			
		||||
    'Best',
 | 
			
		||||
    'Workouts',
 | 
			
		||||
    'Timer',
 | 
			
		||||
    'Settings'
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    // This method is rerun every time setState is called, for instance as done
 | 
			
		||||
    // by the _incrementCounter method above.
 | 
			
		||||
    //
 | 
			
		||||
    // The Flutter framework has been optimized to make rerunning build methods
 | 
			
		||||
    // fast, so that you can just rebuild anything that needs updating rather
 | 
			
		||||
    // than having to individually change instances of widgets.
 | 
			
		||||
    return Scaffold(
 | 
			
		||||
      appBar: AppBar(
 | 
			
		||||
        // Here we take the value from the MyHomePage object that was created by
 | 
			
		||||
        // the App.build method, and use it to set our appbar title.
 | 
			
		||||
        title: Text(widget.title),
 | 
			
		||||
        title: Text(_pageTitles[0]),
 | 
			
		||||
      ),
 | 
			
		||||
      body: Center(
 | 
			
		||||
        // Center is a layout widget. It takes a single child and positions it
 | 
			
		||||
        // in the middle of the parent.
 | 
			
		||||
        child: Column(
 | 
			
		||||
          // Column is also a layout widget. It takes a list of children and
 | 
			
		||||
          // arranges them vertically. By default, it sizes itself to fit its
 | 
			
		||||
          // children horizontally, and tries to be as tall as its parent.
 | 
			
		||||
          //
 | 
			
		||||
          // Invoke "debug painting" (press "p" in the console, choose the
 | 
			
		||||
          // "Toggle Debug Paint" action from the Flutter Inspector in Android
 | 
			
		||||
          // Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
 | 
			
		||||
          // to see the wireframe for each widget.
 | 
			
		||||
          //
 | 
			
		||||
          // Column has various properties to control how it sizes itself and
 | 
			
		||||
          // how it positions its children. Here we use mainAxisAlignment to
 | 
			
		||||
          // center the children vertically; the main axis here is the vertical
 | 
			
		||||
          // axis because Columns are vertical (the cross axis would be
 | 
			
		||||
          // horizontal).
 | 
			
		||||
          mainAxisAlignment: MainAxisAlignment.center,
 | 
			
		||||
          children: <Widget>[
 | 
			
		||||
            const Text(
 | 
			
		||||
              'You have pushed the button this many times:',
 | 
			
		||||
            ),
 | 
			
		||||
            Text(
 | 
			
		||||
              'Tap to start timer',
 | 
			
		||||
              style: Theme.of(context).textTheme.headlineMedium,
 | 
			
		||||
            ),
 | 
			
		||||
          ],
 | 
			
		||||
      drawer: Drawer(
 | 
			
		||||
        child: ListView.builder(
 | 
			
		||||
          itemCount: _pageTitles.length,
 | 
			
		||||
          itemBuilder: (context, index) {
 | 
			
		||||
            return ListTile(
 | 
			
		||||
              title: Text(_pageTitles[index]),
 | 
			
		||||
              onTap: () {
 | 
			
		||||
                Navigator.pop(context);
 | 
			
		||||
                Navigator.pushNamed(
 | 
			
		||||
                    context, '/${_pageTitles[index].toLowerCase()}');
 | 
			
		||||
              },
 | 
			
		||||
            );
 | 
			
		||||
          },
 | 
			
		||||
        ),
 | 
			
		||||
      ),
 | 
			
		||||
      floatingActionButton: FloatingActionButton(
 | 
			
		||||
        onPressed: _timer,
 | 
			
		||||
        tooltip: 'Increment',
 | 
			
		||||
        child: const Icon(Icons.add),
 | 
			
		||||
      ), // This trailing comma makes auto-formatting nicer for build methods.
 | 
			
		||||
      body: Center(
 | 
			
		||||
        child: Text('Welcome to the Home Page!'),
 | 
			
		||||
      ),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class PlansPage extends StatelessWidget {
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return Scaffold(
 | 
			
		||||
      appBar: AppBar(
 | 
			
		||||
        title: Text('Plans'),
 | 
			
		||||
      ),
 | 
			
		||||
      body: Center(
 | 
			
		||||
        child: Text('Welcome to the Plans Page!'),
 | 
			
		||||
      ),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class BestPage extends StatelessWidget {
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return Scaffold(
 | 
			
		||||
      appBar: AppBar(
 | 
			
		||||
        title: Text('Best'),
 | 
			
		||||
      ),
 | 
			
		||||
      body: Center(
 | 
			
		||||
        child: Text('Welcome to the Best Page!'),
 | 
			
		||||
      ),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class WorkoutsPage extends StatelessWidget {
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return Scaffold(
 | 
			
		||||
      appBar: AppBar(
 | 
			
		||||
        title: Text('Workouts'),
 | 
			
		||||
      ),
 | 
			
		||||
      body: Center(
 | 
			
		||||
        child: Text('Welcome to the Workouts Page!'),
 | 
			
		||||
      ),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class TimerPage extends StatelessWidget {
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return Scaffold(
 | 
			
		||||
      appBar: AppBar(
 | 
			
		||||
        title: Text('Timer'),
 | 
			
		||||
      ),
 | 
			
		||||
      body: Center(
 | 
			
		||||
        child: Text('Welcome to the Timer Page!'),
 | 
			
		||||
      ),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class SettingsPage extends StatelessWidget {
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return Scaffold(
 | 
			
		||||
      appBar: AppBar(
 | 
			
		||||
        title: Text('Settings'),
 | 
			
		||||
      ),
 | 
			
		||||
      body: Center(
 | 
			
		||||
        child: Text('Welcome to the Settings Page!'),
 | 
			
		||||
      ),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user