BMI Application
import "package:flutter/material.dart";
void main()
{
runApp(const MyApp());
}
class MyApp extends StatelessWidget
{
const MyApp({super.key});
@override
Widget build(BuildContext context)
{
return MaterialApp(
title: "Hello",
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.teal,
),
home: const FlutterApp(),
);
}
}
class FlutterApp extends StatefulWidget
{
const FlutterApp({super.key});
@override
State<FlutterApp> createState()
{
return FlutterAppState();
}
}
class FlutterAppState extends State<FlutterApp>
{
var wtController = TextEditingController();
var ftController = TextEditingController();
var inController = TextEditingController();
var result = "";
var bgColor = Colors.teal.shade50;
@override
Widget build(BuildContext context)
{
return GestureDetector(
onTap: (){
FocusManager.instance.primaryFocus?.unfocus();
},
child: Scaffold(
drawer: Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: [
const UserAccountsDrawerHeader(
accountName: Text("John"),
accountEmail: Text("John442@google.com"),
currentAccountPicture: Icon(Icons.account_circle, size: 85,),
),
ListTile(
leading: const Icon(Icons.message, color: Colors.black,),
title: const Text("message"),
onTap: (){
Navigator.pop(context);
},
),
const Divider(thickness: 1, color: Colors.black,),
ListTile(
leading: const Icon(Icons.account_circle, color: Colors.black,),
title: const Text("Profile"),
onTap: (){
Navigator.pop(context);
},
),
const Divider(thickness: 1, color: Colors.black,),
ListTile(
leading: const Icon(Icons.settings, color: Colors.black,),
title: const Text("Settings"),
onTap: (){
Navigator.pop(context);
},
),
const Divider(thickness: 1, color: Colors.black,),
ListTile(
leading: const Icon(Icons.help_outline, color: Colors.black,),
title: const Text("Help & feedback"),
onTap: (){
Navigator.pop(context);
},
),
const Divider(thickness: 1, color: Colors.black,),
ListTile(
leading: const Icon(Icons.restore_from_trash, color: Colors.black,),
title: const Text("Trash"),
onTap: (){
Navigator.pop(context);
},
),
],
),
),
appBar: AppBar(
title: const Text("Flutter BMI Application",
style: TextStyle(fontWeight: FontWeight.bold),
),
centerTitle: true,
backgroundColor: Colors.grey,
),
body: Container(
color: bgColor,
child: Center(
child: Container(
width: 300,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text("BMI", style: TextStyle(
fontSize: 34,
fontWeight: FontWeight.w700,
),),
const SizedBox(height: 21,),
TextField(
controller: wtController,
decoration: const InputDecoration(
label: Text("Enter your Weight(in Kgs)"),
prefixIcon: Icon(Icons.line_weight),
),
keyboardType: TextInputType.number,
),
TextField(
controller: ftController,
decoration: const InputDecoration(
label: Text("Enter your Height(in Feet)"),
prefixIcon: Icon(Icons.height),
),
keyboardType: TextInputType.number,
),
TextField(
controller: inController,
decoration: const InputDecoration(
label: Text("Enter your Height(in Inch)"),
prefixIcon: Icon(Icons.height),
),
keyboardType: TextInputType.number,
),
const SizedBox(height: 40.0),
ElevatedButton(
onPressed: (){
var wt = wtController.text.toString();
var ft = ftController.text.toString();
var inch = inController.text.toString();
if(wt!="" && ft!="" && inch!="")
{
//BMI Calculation
var iWt = int.parse(wt);
var iFt = int.parse(ft);
var iInch = int.parse(inch);
var tInch = (iFt*12) + iInch;
var tCm = tInch*82.54;
var tM = tCm/100;
var bmi = iWt/(tM*tM);
var msg = "";
if(bmi>25){
msg = "You're OverWeighted!!";
bgColor = Colors.orange.shade100;
}else if(bmi<18){
msg = "You're UnderWeighted!!";
bgColor = Colors.red.shade100;
}else{
msg = "You're Healthy!!";
bgColor = Colors.green.shade100;
}
const SizedBox(height: 20);
setState((){
//result = "Your BMI is : $bmi";
result = "$msg \n Your BMI is : ${bmi.toStringAsFixed(5)}";/*Indication with given fraction digits*/
});
} else {
setState((){
result = "Please fill all the required blanks!!";
});
}
},
style: ElevatedButton.styleFrom(
backgroundColor: Colors.blue.shade800,
fixedSize: const Size(350.0,50.0),
),
child: const Text("Calculate",
style: TextStyle(fontWeight: FontWeight.bold, color: Colors.white, fontSize: 20.0),
),
),
const SizedBox(height: 20,),
Text(result, style: const TextStyle(fontSize: 19,),),
],
),
),
),
),
),
);
}
}
Comments
Post a Comment