티스토리 뷰

🤼‍♀️/Flutter

[Flutter] describeEnum

eungding 2021. 9. 15. 23:43
728x90
반응형

package:flutter/foundation.dart 안에 있는 describeEnum 를 이용하여

enum value의 short description 을 구할 수 있습니다.  

즉 아래 예제에서 처럼 'Day.monday' 가 아니라 'monday' 를 구할 수 있다는 뜻! 

 

 

[ 실 사용 예제 ]

 

enum Language {
  KOR,
  ENG
}

 

enum value를 뷰(CupertinoSegmentedControl)에 그대로 뿌리고 싶을 때 사용해주었습니다!

(Language.KOR 이런 식으로 뷰에 보여지면 안되니까..) 

 

import 'package:flutter/foundation.dart';

int _segmentedIndex = Language.KOR.index;

Map<int, Widget> _segments() {
  Map<int, Widget> map = {};
  Language.values.forEach((lan){
    final index = lan.index;
    ✅ final value = describeEnum(lan);
    map[index] = Text(value);
  });
  return map;
}

CupertinoSegmentedControl(
    children: _segments(),
    groupValue: _segmentedIndex,
    onValueChanged: (value) {
        setState(() {
          _segmentedIndex = value;
        });
    },
)

 

 

 

반응형
댓글