본문 바로가기
카테고리 없음

TextField위젯과 관련된 클래스 활용법

by Creative Developer 2023. 3. 2.

목차

  1. TextField
  2. TextFiled와 함께 활용되는 클래스

서론

어플리케이션의 화면을 구성할 때 사용자에게 직접 텍스트를 입력 받거나, Checkbox, Radio 버튼 등으로 데이터를 입력 받는 경우가 많습니다. 이번에는 사용자에게 데이터를 입력 받을 때 사용하는 위젯에 대해서 알아보겠습니다. 또한 Form 위젯으로 데이터 유효성을 검증하고, 관리하는 방법도 알아보겠습니다.

 

본문

1. TextField:

TextField는 유저에게 Text를 입력 받는 Widget입니다. style 프로퍼티의 TextStyle 객체를 이용하여 문자열의 스타일을 지정할 수 있습니다. textAlign 속성의 TextAlign 클래스가 제공하는 상수를 이용하여 텍스트를 가로 방향에서 어떻게 정렬할 지 지정할 수 있습니다. start, end, center, left, right 등의 상수를 이용하여 텍스트를 정렬할 수 있습니다. 사용 예는 아래와 같습니다:
TextField(
 style: TextStyle(fontSize: 15),
 textAlign: TextAlign.center
)

 

2. TextField와 함께 활용되는 클래스:

  •  TextEditingController: TextField에 User가 입력한  텍스트를 애플리케이션 내부로 가져와 서버에 전송하거나, 데이터 베이스에 저장하는 방식으로 이용할 수 있습니다. TextEditingController 객체를 TextField의 controller 프로퍼티에 지정하면 텍스트 필드에 입력된 데이터가 자동으로 TextEditingController에 저장됩니다.
    코드 예시: final controller = TextEditingController() 
    그러므로 TextField에 입력된 데이터를 가져오려면 TextEditingController의 text 프로퍼티를 이용하면 됩니다.
    코드 예시: print('submit : ' + controller.text);

  • InputDecoration: TextField의 테두리를 꾸며주거나, TextField에 입력을 받는 문자열과 관련된 여러가지 설정을 할 수 있는 프로퍼티를 포함하고 있습니다. InputDecoration의 주요 프로퍼티는 다음과 같습니다. 아래 표에 나타낸 바와 같이, 왼쪽 열은 프로퍼티를 나타내며, 오른쪽 열은 각각의 행의 프로퍼티에 대한 간단한 설명입니다.
labelText 라벨 문자열
helperText 아래쪽에 출력되는 설명 문자열
hintText 입력 상자 안쪽에 연하게 출력되었다가 글 입력 시 사라지는 문자열
errorText 아래쪽에 출력되는 오류 문자열
prefixIcon 입력 앞 부분에 고정으로 출력되는 아이콘 이미지
counterText 아래쪽에 출력되는 문자열
border 테두리 지정.

 위의 프로퍼티를 활용한 코드 예시는 다음과 같습니다.

decoration: InputDecoration(
 labelText: 'Search',
 prefixIcon: Icon(Icons.input),
 border: OutlineInputBorder(),
 hintText: "Search Bar",

 helperText: "Input what you want to search",

 counterText: "$textCounter characters",

 errorText: "Wrong input"

 

  • textInputAction: 사용자가 TextField에 text를 입력하기 위해서 TextField를 터치하면 모바일폰의 화면 아래쪽에서 Soft Keyboard가 자동으로 올라오면서 사용자는 이 키보드를 이용하여 text를 입력하게 됩니다. 이 키보드의 키를 앱에서 제어할 수는 없지만, 키보드의 오른쪽 아래에 있는 액션 버튼만은 앱에서 제어할 수 있습니다. textInputAction 의 프로퍼티에 다음의 상수를 대입하여 설정할 수 있습니다.

TextInputAction.next 다음 위젯으로 커서 이동
TextInputAction.previous 이전 위젯으로 커서 이동
TextInputAction.search 검색 버튼
TextInputAction.send 전송 버튼

위의 상수에 대한 코드 예시는 다음과 같습니다: keyboardType: TextInputType.number

댓글