Untitled
unknown
plain_text
a year ago
5.7 kB
1
Indexable
Never
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: 'Calculator', theme: ThemeData( colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), useMaterial3: true, ), home: const MyHomePage(title: 'Calculator'), ); } } class MyHomePage extends StatefulWidget { const MyHomePage({super.key, required this.title}); final String title; @override State<MyHomePage> createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { int _counter = 0; void _incrementCounter() { setState(() { _counter++; }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( backgroundColor: Theme.of(context).colorScheme.inversePrimary, title: Text(widget.title), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Expanded( child: Container( color: Theme.of(context).primaryColor, child: Align( alignment: Alignment.centerRight, child: Padding( padding: const EdgeInsets.all(10.0), child: Text('0', style: Theme.of(context).textTheme.displayLarge!.copyWith(color: Colors.white), ), ), ), ), ), Expanded( child: GridView.count(crossAxisCount: 4, shrinkWrap: true, padding: const EdgeInsets.all(0), children: [ CalculatorButton(backgroundColor: Theme.of(context).primaryColorLight, foregroundColor: Theme.of(context).primaryColorDark, text:'CE',), CalculatorButton(backgroundColor: Theme.of(context).primaryColorLight, foregroundColor: Theme.of(context).primaryColorDark, text:'C',), CalculatorButton(backgroundColor: Theme.of(context).primaryColorLight, foregroundColor: Theme.of(context).primaryColorDark, text:'BS',), CalculatorButton(backgroundColor: Theme.of(context).primaryColorLight, foregroundColor: Theme.of(context).primaryColorDark, text:'/',), CalculatorButton(backgroundColor: Theme.of(context).primaryColorLight, foregroundColor: Theme.of(context).primaryColorDark, text:'7',), CalculatorButton(backgroundColor: Theme.of(context).primaryColorLight, foregroundColor: Theme.of(context).primaryColorDark, text:'8',), CalculatorButton(backgroundColor: Theme.of(context).primaryColorLight, foregroundColor: Theme.of(context).primaryColorDark, text:'9',), CalculatorButton(backgroundColor: Theme.of(context).primaryColorLight, foregroundColor: Theme.of(context).primaryColorDark, text:'X',), CalculatorButton(backgroundColor: Theme.of(context).primaryColorLight, foregroundColor: Theme.of(context).primaryColorDark, text:'4',), CalculatorButton(backgroundColor: Theme.of(context).primaryColorLight, foregroundColor: Theme.of(context).primaryColorDark, text:'5',), CalculatorButton(backgroundColor: Theme.of(context).primaryColorLight, foregroundColor: Theme.of(context).primaryColorDark, text:'6',), CalculatorButton(backgroundColor: Theme.of(context).primaryColorLight, foregroundColor: Theme.of(context).primaryColorDark, text:'-',), CalculatorButton(backgroundColor: Theme.of(context).primaryColorLight, foregroundColor: Theme.of(context).primaryColorDark, text:'1',), CalculatorButton(backgroundColor: Theme.of(context).primaryColorLight, foregroundColor: Theme.of(context).primaryColorDark, text:'2',), CalculatorButton(backgroundColor: Theme.of(context).primaryColorLight, foregroundColor: Theme.of(context).primaryColorDark, text:'3',), CalculatorButton(backgroundColor: Theme.of(context).primaryColorLight, foregroundColor: Theme.of(context).primaryColorDark, text:'+',), CalculatorButton(backgroundColor: Theme.of(context).primaryColorLight, foregroundColor: Theme.of(context).primaryColorDark, text:'+/-',), CalculatorButton(backgroundColor: Theme.of(context).primaryColorLight, foregroundColor: Theme.of(context).primaryColorDark, text:'0',), CalculatorButton(backgroundColor: Theme.of(context).primaryColorLight, foregroundColor: Theme.of(context).primaryColorDark, text:',',), CalculatorButton(backgroundColor: Theme.of(context).primaryColorLight, foregroundColor: Theme.of(context).primaryColorDark, text:'=',), ], ), ), ], ), ), ); } } class CalculatorButton extends StatelessWidget { const CalculatorButton( {super.key, required this.backgroundColor, required this.foregroundColor, required this.text} ); final Color backgroundColor; final Color foregroundColor; final String text; @override Widget build(BuildContext context) { return Container( color: backgroundColor, child: Center( child: Text( text, style: Theme.of(context).textTheme.headlineMedium!.copyWith( color: foregroundColor), ), ), ); } }