import 'package:flutter/material.dart';
// stf 단축키를 사용하여 클래스를 생성한다
class ExCheck extends StatefulWidget {
const ExCheck({super.key});
@override
State<ExCheck> createState() => _ExCheckState();
}
class _ExCheckState extends State<ExCheck> {
// 변수로 사용할수 있는 내용!
// bool isChecked1 = false;
// bool isChecked2 = false;
List<bool> isCheckeds = [false, false, false];
@override
Widget build(BuildContext context) {
// build 메소드는 화면의 UI를 작성하는 메소드로
// 변수를 무조건 상수처럼 사용한다!
return Scaffold(
body: SafeArea(
// checkbox는 true/false 값으로 체크값을 판단한다!
child: Column(
children: [
Row(
children: [
Text("첫번째 항목"),
Checkbox(value: isCheckeds[0], onChanged: (value) {
// 상태를 체크할 수 있는 메소드 호출!
setState(() {
isCheckeds[0] = value!;
});
}),
],
),
Row(
children: [
Text("두번째 항목"),
Checkbox(value: isCheckeds[1], onChanged: (value) {
// 상태를 체크할 수 있는 메소드 호출!
setState(() {
isCheckeds[1] = value!;
});
}),
],
),
CheckboxListTile(
title: Text('세번째 항목', style: TextStyle(fontWeight: FontWeight.bold),),
subtitle: Text('subtitle'),
controlAffinity: ListTileControlAffinity.leading, // 체크박스를 맨앞으로 이동, 기본값은 맨뒤
activeColor: Colors.blue,
value: isCheckeds[2], onChanged: (value){
setState(() {
isCheckeds[2] = value!;
// 체크박스가 선택되면 해당 항목을 가져올수 있는 snack Bar 사용!
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('세번째 항목')),
);
});
})
],
)),
);
}
}

