import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(primaryColor: Colors.red),
title: "Calculator",
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
int firstnum;
int secondnum;
String texttodisplayy = "";
String results;
String operatortoperform;
void btnclicked(String btnval) {
if (btnval == "C") {
texttodisplayy = "";
firstnum = 0;
secondnum = 0;
results = "";
} else if (btnval == "+" ||
btnval == "-" ||
btnval == "x" ||
btnval == "/") {
firstnum = int.parse(texttodisplayy);
results = "";
operatortoperform = btnval;
} else if (btnval == "=") {
secondnum = int.parse(texttodisplayy);
if (operatortoperform == "+") {
results = (firstnum + secondnum).toString();
}
if (operatortoperform == "-") {
results = (firstnum - secondnum).toString();
}
if (operatortoperform == "x") {
results = (firstnum * secondnum).toString();
}
if (operatortoperform == "/") {
results = (firstnum ~/ secondnum).toString();
}
} else {
results = int.parse(texttodisplayy + btnval).toString();
}
setState(() {
texttodisplayy = results;
});
}
Widget _custombuttom(String btnval) {
return Expanded(
child: OutlineButton(
onPressed: () {
btnclicked(btnval);
},
padding: EdgeInsets.all(25.0),
child: Text(
"$btnval",
style: TextStyle(fontSize: 22.0),
),
),
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Calculator"),
),
body: Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Expanded(
child: Container(
padding: EdgeInsets.only(bottom: 20.0, right: 20),
alignment: Alignment.bottomRight,
child: Text(
"$texttodisplayy",
style: TextStyle(fontSize: 30, fontWeight: FontWeight.w600),
),
),
),
Row(
children: [
_custombuttom("9"),
_custombuttom("8"),
_custombuttom("7"),
_custombuttom("+"),
],
),
Row(
children: [
_custombuttom("6"),
_custombuttom("5"),
_custombuttom("4"),
_custombuttom("-"),
],
),
Row(
children: [
_custombuttom("3"),
_custombuttom("2"),
_custombuttom("1"),
_custombuttom("x"),
],
),
Row(
children: [
_custombuttom("C"),
_custombuttom("0"),
_custombuttom("="),
_custombuttom("/"),
],
),
],
),
),
);
}
}