Creating a simple Arithmetical Calculator in Flutter
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
// Import for Android features.
void main() {
runApp(MyApp());
}
//This is main homepage or we can say main body
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
Color color = Theme.of(context).primaryColor;
return MaterialApp(
title: 'Login Page',
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
var num1 =0, num2 = 0, output = 0;
final TextEditingController t1 = TextEditingController(text: "");
final TextEditingController t2 = TextEditingController(text: "");
void doAdd(){
setState(() {
num1 = int.parse(t1.text);
num2 = int.parse(t2.text);
output = num1+num2;
});
}
void doSub(){
setState(() {
num1 = int.parse(t1.text);
num2 = int.parse(t2.text);
output = num1-num2;
});
}
void doMul(){
setState(() {
num1 = int.parse(t1.text);
num2 = int.parse(t2.text);
output = num1*num2;
});
}
void doDiv(){
setState(() {
num1 = int.parse(t1.text);
num2 = int.parse(t2.text);
output = (num1/num2).toInt();
});
}
void doClear(){
setState(() {
t1.text = "0";
t2.text = "0";
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Center(
child: Text(
'Arithmetical Calculator',
style: TextStyle(fontWeight: FontWeight.bold),
)),
),
body: Stack(
children: [
Container(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
Color(0xFFd4fc79),
Color(0xFF96e6a1)
]
)
),
child: Center(
child: Column(mainAxisAlignment: MainAxisAlignment.center, children: [
Container(
width: 300,
child: Column(
children: [
Form(
child: TextField(
controller: t1,
decoration: InputDecoration(
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.orange,
width: 2,
),
borderRadius: BorderRadius.circular(11)),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(width: 2),
borderRadius: BorderRadius.circular(11)),
hintText: "Enter num1",
),
keyboardType: TextInputType.number,
),
),
SizedBox(
height: 15,
),
Form(
child: TextField(
controller: t2,
decoration: InputDecoration(
focusedBorder: OutlineInputBorder(
borderSide:
BorderSide(color: Colors.orange, width: 2),
borderRadius: BorderRadius.circular(11)),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(width: 2),
borderRadius: BorderRadius.circular(11)),
hintText: "Enter here",
),
keyboardType: TextInputType.number,
),
),
Padding(
padding: const EdgeInsets.only(top: 12.0),
child: Expanded(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
ElevatedButton(onPressed: doAdd, child:Text('+')),
ElevatedButton(onPressed: doSub, child:Text('-')) ,
ElevatedButton(onPressed: doMul, child:Text('*')),
ElevatedButton(onPressed: doDiv, child:Text('/')),
],
),
),
),
Padding(
padding: const EdgeInsets.only(top: 40.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Text("Output:$output ",style: TextStyle(fontSize: 25,fontWeight: FontWeight.bold,color: Colors.red),),
Padding(
padding: const EdgeInsets.only(top: 40.0),
child: ElevatedButton(onPressed: doClear, child: Text("Clear",style: TextStyle(fontWeight:FontWeight.bold,fontSize: 20),)),
)
],
),
),
]))
],
),
),
),
]),
);
}
}
Comments
Post a Comment