[flutter]기본 위젯 Radio와 RadioListTile
- archive
- 2020. 6. 7. 16:57
Radio는 그룹 내에서 하나만 선택할 때 사용합닏. 그룹이 되는 항목을 열거형(enum)으로 정의하고, groupValue 프로퍼티에 열거형으로 정의한 Gender 타입의 변수를 지정하고, onChanged이벤트에서 변경된 값을 반영합니다.
현재는 ListTile을 사용했기 때문에 라디오 버튼을 터치해야 인식됩니다.
enum Gender {MAN, WOMEN}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
var _isChecked = false;
Gender _gender = Gender.MAN;
void _incrementCounter() {
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Checkbox / Radio / Switch'),
),
body: Padding(
padding: const EdgeInsets.all(8.0),
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ListTile(
title: Text('남자'),
leading: Radio(
value: Gender.MAN,
groupValue: _gender,
onChanged: (value) {
setState(() {
_gender = value;
});
},
),
),
ListTile(
title: Text('여자'),
leading: Radio(
value: Gender.WOMEN,
groupValue: _gender,
onChanged: (value) {
setState(() {
_gender = value;
});
},
),
)
],
),
),
),
);
}
}
RadioListTile을 사용하면 가로 전체가 터치영역이 됩니다.
enum Gender {MAN, WOMEN}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
var _isChecked = false;
Gender _gender = Gender.MAN;
void _incrementCounter() {
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Checkbox / Radio / Switch'),
),
body: Padding(
padding: const EdgeInsets.all(8.0),
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
RadioListTile(
title: Text('남자'),
value: Gender.MAN,
groupValue: _gender,
onChanged: (value) {
setState(() {
_gender = value;
});
},
),
RadioListTile(
title: Text('여자'),
value: Gender.WOMEN,
groupValue: _gender,
onChanged: (value) {
setState(() {
_gender = value;
});
},
),
],
),
),
),
);
}
}
'archive' 카테고리의 다른 글
[flutter]안드로이드 버전코드, 버전이름 업그레이드 하기 (0) | 2020.06.28 |
---|---|
[flutter]기본 위젯 DropDownButton (0) | 2020.06.07 |
[flutter]기본 위젯 CheckBox, Switch (0) | 2020.06.07 |
[flutter]기본 위젯 Text (0) | 2020.06.07 |
[flutter]프로젝트 구조 (0) | 2020.06.06 |