import 'package:flutter/material.dart'; /* Green : #12a644 Grey : #403f3d */ void main() => runApp( MaterialApp( theme: ThemeData( primaryColor:Color(0xFF12a644) ), home: MyApp(), debugShowCheckedModeBanner: false, ) ); class MyApp extends StatefulWidget { @override _MyAppState createState() => _MyAppState(); } class _MyAppState extends State { double _height=170.0; double _weight=75.0; int _bmi=0; String _condition='Select Data'; @override Widget build(BuildContext context) { Size size=MediaQuery.of(context).size; return Scaffold( body: SingleChildScrollView( child: Column( children: [ Container( height: size.height*0.40, width: double.infinity, decoration: new BoxDecoration(color: Color(0xFF12a644)), padding: EdgeInsets.symmetric(vertical: 30.0,horizontal: 10.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text("BMI",style: TextStyle(color: Colors.white,fontWeight: FontWeight.bold,fontSize: 60.0),), Text("Calculator",style: TextStyle(color: Colors.white,fontSize: 40.0),), SizedBox( width: double.infinity, child: Container( child:Text("$_bmi", style:TextStyle( color: Colors.white, fontWeight: FontWeight.bold, fontSize: 45.0 ),textAlign: TextAlign.right, ), ), ), RichText( text: TextSpan( text: "Condition : ", style: TextStyle( color: Colors.white, fontSize: 25.0 ), children: [ TextSpan( text: "$_condition", style: TextStyle( color: Colors.white, fontSize: 25.0, fontWeight: FontWeight.bold ),) ] ), ) ], ), ), Container( padding: EdgeInsets.symmetric(horizontal: 10.0,vertical: 10.0), width: double.infinity, child: Column( children: [ SizedBox(height: size.height*0.03,), Text("Choose Data",style: TextStyle(color: Color(0xFF12a644),fontSize: 30.0,fontWeight: FontWeight.bold),), SizedBox(height: size.height*0.03,), RichText( text: TextSpan( text: "Height : ", style: TextStyle( color: Color(0xFF403f3d), fontSize: 25.0 ), children: [ TextSpan( text: "$_height cm", style: TextStyle( color: Color(0xFF403f3d), fontSize: 25.0, fontWeight: FontWeight.bold ),) ] ), ), SizedBox(height: size.height*0.03,), Slider( value: _height, min:0, max: 250, onChanged: (height){ setState(() { _height=height; }); }, divisions: 250, label: "$_height", activeColor:Color(0xFF403f3d), inactiveColor: Colors.grey, ), SizedBox(height: size.height*0.03,), RichText( text: TextSpan( text: "Weight : ", style: TextStyle( color: Color(0xFF403f3d), fontSize: 25.0 ), children: [ TextSpan( text: "$_weight kg", style: TextStyle( color: Color(0xFF403f3d), fontSize: 25.0, fontWeight: FontWeight.bold ),) ] ), ), SizedBox(height: size.height*0.03,), Slider( value: _weight, min:0, max: 300, onChanged: (weight){ setState(() { _weight=weight; }); }, divisions: 300, label: "$_weight", activeColor:Color(0xFF403f3d), inactiveColor: Colors.grey, ), SizedBox(height: size.height*0.03,), Container( width: size.width*0.8, child: ClipRRect( borderRadius: BorderRadius.circular(30.0), child: FlatButton( onPressed: (){ setState(() { //18.5 - 25 Healthy 25-30 Overweight >30 Obesity _bmi=(_weight/((_height/100)*(_height/100))).round().toInt(); if(_bmi>=18.5 && _bmi<=25) {_condition=" Normal";} else if(_bmi>25 && _bmi<=30) {_condition=" Overweight";} else if(_bmi>30) {_condition=" Obesity";} else {_condition=" Underweight";} }); }, child: Text("Calculate",style: TextStyle(color: Colors.white,fontSize: 20.0),), color:Color(0xFF12a644), padding: EdgeInsets.symmetric(vertical: 15,horizontal: 40), ), ), ) ], ), ) ], ), ), ); } }