archive

[flutter]기본 위젯 DropDownButton

I'mDawon 2020. 6. 7. 17:10

 

 

여러 아이템 중 하나를 고를 수 있는 콤보박스 형태의 위젯입니다.

value 프로퍼티에 인스턴스들을 담은 리스트로 지정해야 합니다. 상태를 가지므로 StatefulWidget으로 작성합니다.

 

map()함수를 사용하여 _valueList 리스트의 문자열 3개를 DropdownMenuItem인스턴스 3개로 변환했습니다. 그리고 toList() 함수를 사용하여 다시 리스트로 변환 시켜서 items 프로퍼티에 이 리스트를 지정했습니다. 

 

class _MyHomePageState extends State<MyHomePage> {
  final _valueList = ['첫 번째', '두 번째', '세 번째'];
  var _selectedValue = '첫 번째';

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('DropDownButton'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(8.0),
        child: Center(
          child: DropdownButton(
            value: _selectedValue,
            items: _valueList.map(
                (value) {
                  return DropdownMenuItem (
                    value: value,
                    child: Text(value),
                  );
                },
            ).toList(),
            onChanged: (value) {
              setState(() {
                _selectedValue = value;
              });
            },
          )
        ),
      ),
    );
  }
}