TextField
- 텍스트를 입력하는 입력란
- 주로 사용하는 속성
- TextEditingController? controller
- 편집 중인 텍스트를 제어하기 위한 컨트롤러
- null일 경우 TextField에서 자체적으로 생성한다.
- FocusNode? focusNode
- 해당 TextField에 대한 포커스 노드 지정
- InputDecoration? decoration
- TextField에 대한 스타일
- 기본 값 : const InputDecoration()
- TextInputType? keyboardType
- 키보드 유형
- text, number, phone, datetime, emailAddress, url 등의 유형이 있다.
- TextInputAction? textInputAction
- 키보드에 사용할 작업 버튼 유형
- TextInputAction.search(검색)이나 TextInputAction.done(완료) 등의 유형이 있다.
- TextStyle? style
- TextAlign textAlign
- 텍스트 가로 정렬 방법
- 기본 값 : TextAlign.start
- TextAlignVertical? textAlignVertical
- TextDirection? textDirection
- bool readOnly
- bool? showCursor
- String obscuringCharacter
- password처럼 대체해서 보여줄 문자
- 기본 값 : ‘•’
- bool obscureText
- 편집 중인 텍스트를 숨길지에 대한 여부
- 비밀번호같은 경우에 해당된다.
- true일 경우에는 필드의 텍스트는 복사 및 자르기가 불가능하다.
- 기본 값 : false
- int? maxLines
- int? minLines
- bool expands
- int? maxLength
- Function(String)? onChanged
- Function()? onEditingComplete
- Function(String)? onSubmitted
- List<TextInputFormatter>? inputFormatters
- bool? enabled
- ScrollController? scrollController
- 스크롤을 컨트롤하기 위한 컨트롤러
- null일 경우 TextField에서 자체적으로 생성한다.
- Function(BuildContext, EditableTextState)? contextMenuBuilder
- 커스텀된 컨텍스트 메뉴 위젯을 설정한다.
- 기본 값 : _defaultContextMenuBuilder
- 참고
- 사용자의 입력을 받을 수 있는 다양한 위젯들을 통해 여러 정보들을 하나의 그룹으로 묶어 처리하는 용도
- 주로 사용하는 속성
- Key? key
- FormState 유형의 GlobalKey를 지정한다.
- Widget child
- 내부에 표시할 자식 위젯
- Column같은 위젯을 많이 쓴다.
- 필수
- bool? canPop
- false일 경우 현재 경로가 pop되는 것을 막는다.
- void Function(bool)? onPopInvoked
- void Function()? onChanged
- Form 위젯 내부의 FormField 계열 위젯들의 상태가 변경되면 호출된다.
- AutovalidateMode? autovalidateMode
- 종류
- AutovalidateMode.onUserInteraction
- 컨텐츠가 변경된 후에만 자동 유효성 검사가 수행된다.
- AutovalidateMode.always
- 사용자 상호 작용 없이도 자동 유효성 검사가 수행된다.
- AutovalidateMode.disabled
- 기본 값 : AutovalidateMode.disabled
- 관련 위젯 목록
- TextFormField
- DropdownButtonFormField
- 참고
TextFormField
- 주로 사용하는 속성
- TextEditingController? controller
- 편집 중인 텍스트를 제어하기 위한 컨트롤러
- null일 경우 TextFormField에서 자체적으로 생성하고
해당 컨트롤러의 텍스트를 initialValue로 초기화한다.
- String? initialValue
- FocusNode? focusNode
- 해당 TextFormField에 대한 포커스 노드 지정
- InputDecoration? decoration
- TextField에 대한 스타일
- 기본 값 : const InputDecoration()
- TextInputType? keyboardType
- 키보드 유형
- text, number, phone, datetime, emailAddress, url 등의 유형이 있다.
- TextInputAction? textInputAction
- 키보드에 사용할 작업 버튼 유형
- TextInputAction.search(검색)이나 TextInputAction.done(완료) 등의 유형이 있다.
- TextStyle? style
- TextAlign textAlign
- 텍스트 가로 정렬 방법
- 기본 값 : TextAlign.start
- TextAlignVertical? textAlignVertical
- TextDirection? textDirection
- bool autofocus
- bool readOnly
- 읽기 전용 여부
- 기본 값 : false
- 커서 노출 여부
- String obscuringCharacter
- password처럼 대체해서 보여줄 문자
- 기본 값 : ‘•’
- bool obscureText
- 편집 중인 텍스트를 숨길지에 대한 여부
- 비밀번호같은 경우에 해당된다.
- true일 경우에는 필드의 텍스트는 복사 및 자르기가 불가능하다.
- 기본 값 : false
- 기본 값 : true
- int? maxLines
- int? minLines
- bool expands
- int? maxLength
- int? maxLength
- Function(String)? onChanged
- Function()? onEditingComplete
- Function(String)? onFieldSubmitted
- Function(String?)? onSaved
- FormState나 Form을 통해서 저장됬을 때 동작할 기능
- String? Function(String?)? validator
- 유효성 검증을 진행하는 방법
- 유효성에 문제가 있는 경우에는 해당 상황에 대한 오류 메시지를 반환한다.
- List<TextInputFormatter>? inputFormatters
- bool? enabled
- bool? enableInteractiveSelection
- 텍스트 관련 기능 사용가능 여부
- 잘라내기/복사/붙여넣기 등의 기능이 포함된다.
- Widget? Function(BuildContext, {required int currentLength, required bool isFocused, required int? maxLength})? buildCounter
- 글자 수를 나타내기 위한 위젯을 만드는 방법을 명시한다.
- Iterable<String>? autofillHints
- 자동 완성 서비스가 해당 TextFormField의 유형을 식별하는데 도움을 주기 위한 문자열 목록
- AutofillHints 클래스에 관련 값들이 명시되어 있다.
- AutovalidateMode? autovalidateMode
- 종류
- AutovalidateMode.onUserInteraction
- 컨텐츠가 변경된 후에만 자동 유효성 검사가 수행된다.
- AutovalidateMode.always
- 사용자 상호 작용 없이도 자동 유효성 검사가 수행된다.
- AutovalidateMode.disabled
- ScrollController? scrollController
- 스크롤을 컨트롤하기 위한 컨트롤러
- null일 경우 TextFormField에서 자체적으로 생성한다.
- Widget Function(BuildContext, EditableTextState)? contextMenuBuilder
- 커스텀된 컨텍스트 메뉴 위젯을 설정한다.
- 기본 값 : _defaultContextMenuBuilder
- 기본 값 : DragStartBehavior.start
- 주로 사용하는 속성
- List<DropdownMenuItem<Object?»? items
- 사용자가 선택할 수 있는 항목 목록
- null 경우 해당 드롭다운 버튼은 비활성화 된다.
- 필수
- List<Widget> Function(BuildContext)? selectedItemBuilder
- Object? value
- 현재 선택된 값
- value가 null이고 버튼이 활성화된 경우는 hint가 표시된다.
- value가 null이고 버튼이 비활성화된 경우는 disabledHint가 표시된다.
- Widget? hint
- placeholder 유형 위젯
- value가 null이고 버튼이 활성화된 경우에 표시된다.
- value가 null이고 버튼이 비활성화되고 disabledHint가 null인 경우에 표시된다.
- Widget? disabledHint
- placeholder 유형 위젯
- value가 null이고 버튼이 비활성화된 경우에 표시된다.
- Function(Object?)? onChanged
- 항목을 선택한 경우에 동작할 기능
- null 경우 해당 드롭다운 버튼은 비활성화 된다.
- 필수
- void Function()? onTap
- 드롭다운 버튼을 선택한 경우에 동작할 기능
- 드롭다운 버튼이 비활성화된 경우에는 호출되지 않는다.
- int elevation
- 드롭다운 버튼 선택 시 나올 항목 목록을 배치할 z 좌표
- 기본 값 : 8
- TextStyle? style
- 드롭다운 버튼 및 드롭다운의 텍스트에 사용할 스타일
- Widget? icon
- Color? iconDisabledColor
- Color? iconEnabledColor
- double iconSize
- bool isDense
- 드롭다운 버튼의 높이를 내부 위젯에 맞추는 것에 대한 여부
- 기본적으로 드롭다운 버튼의 높이는 항목의 높이와 같다.
- 기본 값 : true
- bool isExpanded
- 드롭다운 버튼의 내부 컨텐츠가 상위 항목을 가로로 채우도록 설정한다.
- 기본적으로 드롭다운 버튼의 내부 너비는 해당 컨텐츠의 최소 크기이다.
- Row에서 사용되는 Expanded 위젯의 역할과 동일하다.
- 기본 값 : false
- double? itemHeight
- Color? focusColor
- 항목이 선택된 경우의 드롭다운 버튼의 배경 색상
- FocusNode? focusNode
- 해당 드롭다운 버튼에 대해 사용될 포커스 노드
- bool autofocus
- Color? dropdownColor
- InputDecoration? decoration
- void Function(Object?)? onSaved
- FormState나 Form을 통해서 저장됬을 때 동작할 기능
- String? Function(String?)? validator
- 유효성 검증을 진행하는 방법
- 유효성에 문제가 있는 경우에는 해당 상황에 대한 오류 메시지를 반환한다.
- AutovalidateMode? autovalidateMode
- 종류
- AutovalidateMode.onUserInteraction
- 컨텐츠가 변경된 후에만 자동 유효성 검사가 수행된다.
- AutovalidateMode.always
- 사용자 상호 작용 없이도 자동 유효성 검사가 수행된다.
- AutovalidateMode.disabled
- double? menuMaxHeight
- 메뉴의 최대 높이
- 해당 값 설정 시 랜더링된 실제 메뉴 목록의 높이가 지정 값 보다 크다면
설정한 값만큼의 범위 안에서 스크롤하게 한다.
- bool? enableFeedback
- AlignmentGeometry alignment
- 힌트 또는 선택한 항목이 버튼 내에 배치되는 방식
- 기본 값 : AlignmentDirectional.centerStart
- BorderRadius? borderRadius
- EdgeInsetsGeometry? padding
Radio
- 상호 배타적인 여러 값 중에서 하나의 선택할 때 주로 사용된다.
- 주로 사용하는 속성
- dynamic value
- 해당 라디오 버튼을 선택하는 경우에 대한 값
- 필수
- dynamic groupValue
- 라디오 버튼 그룹에 대해서 현재 선택된 값
- groupValue의 값이 value의 값과 일치하면 선택된 것으로 간주한다.
- 필수
- void Function(dynamic)? onChanged
- bool toggleable
- Color? activeColor
- 라디오 버튼이 선택된 경우의 색상
- 외곽선과 내부의 원 도형의 색상이 바뀐다.
- Color? focusColor
- Color? hoverColor
- double? splashRadius
- FocusNode? focusNode
- 해당 드롭다운 버튼에 대해 사용될 포커스 노드
- bool autofocus
- 참고
Checkbox
- 체크박스를 만드는 위젯
- 주로 사용하는 속성
- bool? value
- 해당 체크박스의 값
- true일 때 활성화된다.
- 필수
- bool tristate
- true일 경우 해당 체크박스에 대시 아이콘 표시된다.
- 해당 값이 true일 경우 value의 값은 true → null → false 순으로 변경된다.
- 기본 값 : false
- Function(bool?)? onChanged
- value의 값이 변경되었을 때 동작할 기능
- 필수
- Color? activeColor
- Color? checkColor
- Color? focusColor
- Color? hoverColor
- double? splashRadius
- FocusNode? focusNode
- bool autofocus
- OutlinedBorder? shape
- BorderSide? side
- bool isError
- true일 경우 해당 체크박스가 오류 상태임을 나타낸다.
- 기본 값 : false
- 참고
Switch
- 스위치를 만드는 위젯
- 단일 설정의 켜기/끄기 상태를 전환하는 데 사용된다.
- ThemeData.useMaterial3의 값을 true로 설정하면
사용자는 Switch.thumbIcon을 사용하여
Switch의 다양한 MaterialState를 기반으로
토글 버튼에 아이콘을 추가 할 수 있다.- theme 속성에 ThemeData(useMaterial3: true)를 적용해야 한다.
- 주로 사용하는 속성
- bool value
- 해당 스위치의 값
- true일 때 활성화된다.
- 필수
- Function(bool)? onChanged
- value의 값이 변경되었을 때 동작할 기능
- 필수
- Color? activeColor
- Color? activeTrackColor
- Color? inactiveThumbColor
- 스위치가 비활성화된 경우의 토글 버튼의 색상
- Switch.adaptive로 생성되면 해당 속성을 무시한다.
- Color? inactiveTrackColor
- ImageProvider<Object>? activeThumbImage
- 스위치가 활성화된 경우의 토글 버튼에 적용할 이미지
- Switch.adaptive로 생성되면 해당 속성을 무시한다.
- Function(Object, StackTrace?)? onActiveThumbImageError
- activeThumbImage 로드 시 오류가 발생한 경우에 동작할 기능
- ImageProvider<Object>? inactiveThumbImage
- 스위치가 비활성화된 경우의 토글 버튼에 적용할 이미지
- Function(Object, StackTrace?)? onInactiveThumbImageError
- inactiveThumbImage 로드 시 오류가 발생한 경우에 동작할 기능
- DragStartBehavior dragStartBehavior
- 기본 값 : DragStartBehavior.start
- Color? focusColor
- 토글 버튼에 입력 포커스가 있는 경우의 배경색
- Color? hoverColor
- MaterialStateProperty<Color?>? overlayColor
- double? splashRadius
- FocusNode? focusNode
- bool autofocus
- 참고
- 사용자가 여러 항목 중에서 선택할 수 있게 하는 유형의 버튼
- 속성 목록
- List<DropdownMenuItem>? items
- 사용자가 선택할 수 있는 항목 목록
- null 경우 해당 드롭다운 버튼은 비활성화 된다.
- 필수
- Function(BuildContext)? selectedItemBuilder
- dynamic value
- 현재 선택된 값
- value가 null이고 버튼이 활성화된 경우는 hint가 표시된다.
- value가 null이고 버튼이 비활성화된 경우는 disabledHint가 표시된다.
- Widget? hint
- placeholder 유형 위젯
- value가 null이고 버튼이 활성화된 경우에 표시된다.
- value가 null이고 버튼이 비활성화되고 disabledHint가 null인 경우에 표시된다.
- Widget? disabledHint
- placeholder 유형 위젯
- value가 null이고 버튼이 비활성화된 경우에 표시된다.
- Function(dynamic)? onChanged
- 항목을 선택한 경우에 동작할 기능
- null 경우 해당 드롭다운 버튼은 비활성화 된다.
- 필수
- Function()? onTap
- 드롭다운 버튼을 선택한 경우에 동작할 기능
- 드롭다운 버튼이 비활성화된 경우에는 호출되지 않는다.
- int elevation
- 드롭다운 버튼 선택 시 나올 항목 목록을 배치할 z 좌표
- 기본 값 : 8
- TextStyle? style
- 드롭다운 버튼 및 드롭다운의 텍스트에 사용할 스타일
- Widget? underline
- 드롭다운 버튼의 밑줄을 그리는 데 사용할 위젯
- Widget? icon
- Color? iconDisabledColor
- Color? iconEnabledColor
- double iconSize
- bool isDense
- 드롭다운 버튼의 높이를 내부 위젯에 맞추는 것에 대한 여부
- 기본적으로 드롭다운 버튼의 높이는 항목의 높이와 같다.
- 기본 값 : false
- bool isExpanded
- 드롭다운 버튼의 내부 컨텐츠가 상위 항목을 가로로 채우도록 설정한다.
- 기본적으로 드롭다운 버튼의 내부 너비는 해당 컨텐츠의 최소 크기이다.
- Row에서 사용되는 Expanded 위젯의 역할과 동일하다.
- 기본 값 : false
- double? itemHeight
- 각 메뉴 항목의 높이
- 기본 값 : kMinInteractiveDimension
- Color? focusColor
- 항목이 선택된 경우의 드롭다운 버튼의 배경 색상
- FocusNode? focusNode
- 해당 드롭다운 버튼에 대해 사용될 포커스 노드
- bool autofocus
- Color? dropdownColor
- double? menuMaxHeight
- 메뉴의 최대 높이
- 해당 값 설정 시 랜더링된 실제 메뉴 목록의 높이가 지정 값 보다 크다면
설정한 값만큼의 범위 안에서 스크롤하게 한다.
- bool? enableFeedback
- AlignmentGeometry alignment
- 힌트 또는 선택한 항목이 버튼 내에 배치되는 방식
- 기본 값 : AlignmentDirectional.centerStart
- BorderRadius? borderRadius
- EdgeInsetsGeometry? padding
- 참고
- TextField 에서 열 수 있는 드롭다운 메뉴
- 선택한 메뉴 항목이 해당 필드에 표시된다.
- DropdownButton의 Material 3 버전
- 주로 사용하는 속성
- bool enabled
- double? width
- double? menuHeight
- Widget? leadingIcon
- Widget? trailingIcon
- 드롭다운 메뉴 우측에 추가될 아이콘
- 드롭다운 메뉴에 포커스가 없을 때 노출된다.
- Widget? label
- String? hintText
- 해당 드롭다운 메뉴에 대한 placeholder
- String? helperText
- String? errorText
- 오류가 발생한 경우에 대한 안내 문구
- errorText가 null이 아니면 helperText 대신에 노출된다.
- Widget? selectedTrailingIcon
- 드롭다운 메뉴 우측에 추가될 아이콘
- 드롭다운 메뉴에 포커스가 있을 때 노출된다.
- bool enableFilter
- 텍스트 입력으로 메뉴 목록을 필터링할 수 있는지에 대한 여부
- 기본 값 : false
- bool enableSearch
- 텍스트 입력과 일치하는 첫 번째 항목을 강조할 것인지에 대한 여부
- 기본 값 : true
- TextStyle? textStyle - 드롭다운 메뉴 및 드롭다운의 텍스트에 사용할 스타일
- InputDecorationTheme? inputDecorationTheme
- MenuStyle? MenuStyle
- TextEditingController? controller - 편집 중인 텍스트를 제어하기 위한 컨트롤러 - null일 경우 DropdownMenu에서 자체적으로 생성한다.
- dynamic initialSelection
- Function(dynamic)? onSelected
- bool? requestFocusOnTap
- List<DropdownMenuEntry<dynamic» dropdownMenuEntries
- 참고
Slider
- 지정한 범위 내에서 특정한 값을 선택하는 위젯
- 주로 사용하는 속성
- double value
- double? secondaryTrackValue
- 슬라이더의 보조 트랙 값
- value 속성의 값보다 작으면 보조 트랙은 표시되지 않는다.
- 재생 진행율과 버퍼링을 함께 표시하는 경우에 사용하면 좋다.
- Function(double)? onChanged
- Function(double)? onChangeStart
- Function(double)? onChangeEnd
- double min
- double max
- int? divisions
- 전체 범위를 나눌 단위 수
- 만약 min이 0이고 max가 100이며 divisions가 5일 경우 슬라이더의 범위는 20씩 나눠진다.
- String? label
- Color? activeColor
- 메인 트랙의 색상
- thumbColor가 null일 경우에는 슬라이드 버튼의 색상이 된다.
- Color? inactiveColor
- Color? secondaryActiveColor
- Color? thumbColor
- FocusNode? focusNode
- bool autofocus
- SliderInteraction? allowedInteraction
- 참고
Autocomplete
- 텍스트를 입력하고 옵션 목록 중에서 선택하여 사용자의 선택을 돕는 위젯
- 주로 사용하는 속성
- FutureOr<Iterable<Object» Function(TextEditingValue) optionsBuilder
- 입력된 텍스트 존재 시 현재 선택가능한 옵션 개체 목록을 반환하는 메소드
- 필수
- Widget Function(BuildContext, TextEditingController, FocusNode, void Function()) fieldViewBuilder
- 기본 값 : _defaultFieldViewBuilder
- void Function(Object)? onSelected
- double optionsMaxHeight
- 각 항목의 최대 세로 길이
- 기본 값 : 200.0
- Function(BuildContext, void Function(Object), Iterable<Object>)? optionsViewBuilder
- Autocomplete 위젯의 형태를 만드는 메소드
- OptionsViewOpenDirection optionsViewOpenDirection
- 기본 값 : OptionsViewOpenDirection.down
- TextEditingValue? initialValue
- 항목 목록이 열리는 방향
- 종류
- OptionsViewOpenDirection.down
- OptionsViewOpenDirection.up
- 기본 값 : OptionsViewOpenDirection.down
- 참고