반응형
이제부터는 당분간 완강까지 진도에 속도를 올리기 위해서, 조금 더 간결하게 글을 쓰도록 하겠습니다ㅎㅎ!!
ps: 바로 아래 코드는 Body의 Column에서 오버플로우 해서 발생하는 에러이기에 Body에 Scrollable할 수 있게 위젯을 씌워준다거나, 아니면 코드 2처럼 Scaffold로 ui를 구성해주면 됩니다. 순간 에러가 떠서 당황스러웠는데, 구글링으로 어떻게 잘 해결했습니다. 오늘 또 하나 배워가네요 ㅋㅋㅋ
코드1
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
const assetImagePath = 'assets/images';
const bannerImage = '$assetImagePath/banner.png';
void main() {
runApp(
MaterialApp(
home: Body(),
),
);
}
class Body extends StatelessWidget {
const Body({super.key});
@override
Widget build(BuildContext context) {
return Column(
children: [
TestCheckBox(),
],
);
}
}
class TestCheckBox extends StatefulWidget {
const TestCheckBox({super.key});
@override
State<TestCheckBox> createState() => _TestCheckBoxState();
}
class _TestCheckBoxState extends State<TestCheckBox> {
late List<bool> values;
@override
void initState() {
super.initState();
values = [false, false, false];
}
@override
Widget build(BuildContext context) {
return Row(
children: [
Checkbox(
value: values[0],
onChanged: (value) => changeValue(0, value: value)),
Checkbox(
value: values[1],
onChanged: (value) => changeValue(1, value: value)),
Checkbox(
value: values[2],
onChanged: (value) => changeValue(2, value: value)),
],
);
}
void changeValue(int index, {bool? value = false}) {
setState(() {
values[index] = value!;
});
}
}
코드2
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
const assetImagePath = 'assets/images';
const bannerImage = '$assetImagePath/banner.png';
void main() {
runApp(
MaterialApp(
home: Scaffold(
appBar: AppBar(),
body: Body(),
),
),
);
}
class Body extends StatelessWidget {
const Body({super.key});
@override
Widget build(BuildContext context) {
return Column(
children: [
TestCheckBox(),
],
);
}
}
class TestCheckBox extends StatefulWidget {
const TestCheckBox({super.key});
@override
State<TestCheckBox> createState() => _TestCheckBoxState();
}
class _TestCheckBoxState extends State<TestCheckBox> {
late List<bool> values;
@override
void initState() {
super.initState();
values = [false, false, false];
}
@override
Widget build(BuildContext context) {
return Row(
children: [
Checkbox(
value: values[0],
onChanged: (value) => changeValue(0, value: value)),
Checkbox(
value: values[1],
onChanged: (value) => changeValue(1, value: value)),
Checkbox(
value: values[2],
onChanged: (value) => changeValue(2, value: value)),
],
);
}
void changeValue(int index, {bool? value = false}) {
setState(() {
values[index] = value!;
});
}
}
반응형
'It Study > 앱 개발 실습 기록(Flutter)' 카테고리의 다른 글
플러터 - 콜백 함수 연습 예제 (0) | 2024.08.04 |
---|---|
플러터 - 라디오버튼, 스위치, 슬라이더, 팝업메뉴버튼 상업적 이용x (0) | 2024.08.03 |
플러터 기본 위젯 예제(MaterialWidget) - 위젯 비율 배치 및 스크롤바 테스트 (0) | 2024.07.30 |
플러터 기본 위젯 예제(MaterialWidget) - 위젯을 상하 좌우로 배치 (0) | 2024.07.28 |
플러터 기본 위젯 예제(MaterialWidget) - container 실습 (2) | 2024.07.24 |