Calculator code
Calculator code
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Basic Calculator',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue),
useMaterial3: true,
),
home: const CalculatorPage(title: 'Basic Calculator'),
);
}
}
@override
State<CalculatorPage> createState() => _CalculatorPageState();
}
setState(() {
switch (operation) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num2 != 0 ? num1 / num2 : null;
break;
default:
result = null;
}
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text(widget.title),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
TextField(
controller: num1Controller,
keyboardType: TextInputType.number,
decoration: const InputDecoration(
labelText: 'Enter first number',
border: OutlineInputBorder(),
),
),
const SizedBox(height: 10),
TextField(
controller: num2Controller,
keyboardType: TextInputType.number,
decoration: const InputDecoration(
labelText: 'Enter second number',
border: OutlineInputBorder(),
),
),
const SizedBox(height: 20),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
ElevatedButton(
onPressed: () => calculate('+'),
child: const Text('+'),
),
ElevatedButton(
onPressed: () => calculate('-'),
child: const Text('-'),
),
ElevatedButton(
onPressed: () => calculate('*'),
child: const Text('*'),
),
ElevatedButton(
onPressed: () => calculate('/'),
child: const Text('/'),
),
],
),
const SizedBox(height: 20),
Text(
result == null
? 'Enter valid numbers and choose an operation'
: 'Result: ${result!.toStringAsFixed(2)}',
style: Theme.of(context).textTheme.headlineSmall,
),
],
),
),
);
}
}