출처 -fluttercalculator/home_page.dart at master · iampawan/fluttercalculator (github.com)
import 'package:flutter/material.dart';
1. 함수읽기
StatefulWidget 사용 -> var 추론으로 변수 num1, num2 , sum = 0 선언
TextEditingController 사용 -> t1 , t2로 변수 선언 text 기본값으로 0
함수식만들기
doAddition -> 더하기 함수 이름
t1,t2에 입력된 값은 -> num1,num2로 불러와지고 sum = num1+num2
더하기 버튼을 만들고
MaterialButton(
child: new Text("+"),
color: Colors.greenAccent,
onPressed: doAddition, -> 버튼을 누르면 doAddition 함수 실행으로 연결되게 만듬
클리어 함수
void doClear() {
setState(() {
t1.text = "0";
t2.text = "0";
});
}
2.위젯읽기
텍스트컨트롤러 t1, t2로 입력 , hint 기능을 사용해서 숫자만 입력하게끔 알려줌
t1,t2로 불러드린 값들이 num1,num2으로 저장되고 sum의 값은 아래 위젯에 보여주게됨
new Container(
padding: const EdgeInsets.all(40.0),
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
new Text(
"Output : $sum",
style: new TextStyle(
fontSize: 20.0,
fontWeight: FontWeight.bold,
color: Colors.purple),
class HomePage extends StatefulWidget {
@override
State createState() => new HomePageState();
}
class HomePageState extends State<HomePage> {
var num1 = 0, num2 = 0, sum = 0;
final TextEditingController t1 = new TextEditingController(text: "0");
final TextEditingController t2 = new TextEditingController(text: "0");
void doAddition() {
setState(() {
num1 = int.parse(t1.text);
num2 = int.parse(t2.text);
sum = num1 + num2;
});
}
void doSub() {
setState(() {
num1 = int.parse(t1.text);
num2 = int.parse(t2.text);
sum = num1 - num2;
});
}
void doMul() {
setState(() {
num1 = int.parse(t1.text);
num2 = int.parse(t2.text);
sum = num1 * num2;
});
}
void doDiv() {
setState(() {
num1 = int.parse(t1.text);
num2 = int.parse(t2.text);
sum = num1 ~/ num2;
});
}
void doClear() {
setState(() {
t1.text = "0";
t2.text = "0";
});
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text("Calculator"),
),
body: new Container(
padding: const EdgeInsets.all(40.0),
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Text(
"Output : $sum",
style: new TextStyle(
fontSize: 20.0,
fontWeight: FontWeight.bold,
color: Colors.purple),
),
new TextField(
keyboardType: TextInputType.number,
decoration: new InputDecoration(hintText: "Enter Number 1"),
controller: t1,
),
new TextField(
keyboardType: TextInputType.number,
decoration: new InputDecoration(hintText: "Enter Number 2"),
controller: t2,
),
new Padding(
padding: const EdgeInsets.only(top: 20.0),
),
new Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
new MaterialButton(
child: new Text("+"),
color: Colors.greenAccent,
onPressed: doAddition,
),
new MaterialButton(
child: new Text("-"),
color: Colors.greenAccent,
onPressed: doSub,
),
],
),
new Padding(
padding: const EdgeInsets.only(top: 20.0),
),
new Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
new MaterialButton(
child: new Text("*"),
color: Colors.greenAccent,
onPressed: doMul,
),
new MaterialButton(
child: new Text("/"),
color: Colors.greenAccent,
onPressed: doDiv,
),
],
),
new Padding(
padding: const EdgeInsets.only(top: 20.0),
),
new Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new MaterialButton(
child: new Text("Clear"),
color: Colors.greenAccent,
onPressed: doClear,
),
],
)
],
),
),
);
}
}
'Flutter-플러터 > 클론코딩' 카테고리의 다른 글
Flutter Get x - BMI 계산기 코드 읽기 (1) | 2022.10.15 |
---|---|
GET X로 만든 계산기 어플 읽기 (0) | 2022.10.07 |
Todo 어플 남의 코드 읽기 연습 1 (0) | 2022.10.01 |
플러터 계산기 코드 읽기 (0) | 2022.09.26 |
플러터 계산기 어플 코드 읽기 (0) | 2022.09.26 |