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

Popular posts from this blog

Second GET API Calling with Bloc simple Example in Flutter

Stack Container Scrollable Card widget UI with Custom Widget

Pagination with Bloc Pattern in Flutter