Positioned
라는 위젯을 쓴다 --> Stack 내부에서만 작동
텍스트 필드가 한개 있는 폼을 어떻게 검증하는지 알아보자
1. GlobalKey를 가지는 Form 생성
2. 검증로직을 가진 TextFormField 추가
3. 폼에 검증(validation)과 제출(submit)을 하는 버튼 추가
- Form위젯은 여러개의 폼필드를 그룹핑하고 검증하도록 동작
- 폼을 생성할 때, GlobalKey를 넣어줘야함, 이것으로 폼을 구분 & 검증
// 키 생성
final _formKey = GlobalKey<FormState>();
-> _formKey
를 사용해서 Form위젯
빌드
TextFormField(
validator: (value){
if(value.isNotEmpty){
return "Please Enter some Text";
}
return null;
},
)
ElevatedButton(
onPressed: (){
if(_formKey.currentState.validate()){
Scaffold.of(context).showSnackBar(SnackBar(content: Text("Processing data"),));
}
},
child: Text("submit"),
)
텍스트를 그리는 것 : Text() , RichText()
그래픽적 효과 : TextStyle()
글자, 문장을 모아 문단을 구성할 수 있게 해주는 것 : TextSpan()
RichText : 여러개의 다른 스타일을 가진 문자를 화면에 그린다.
!!!! Text.rich와 다른 점
-> TextSpan 을 통해 문단별로 스타일을 다르게 적용
TextFormField 에서 onSaved 속성으로 각 입력값에 접근하고
입력값이 업데이트 될 때 각 입력값을 저장할 수 있다.
-> 유저 이름 입력시 저장
화면의 어딜 터치하든 소프트키를 사라지게 해주는 역할을 한다.
TextField 안에 Icon 위치
enabledBorder 를 이용해 텍스트 필드를 둥글게 만들고 , focusBorder를 이용해
해당 텍스트 필드를 클릭하여도 모양이 유지되는 것을 설정
gradient
는 Container
내의 데코레이션 항목에서 BoxDecoration을 쓸 때, 사용 가능
gradient
의 color
속성은 List[] 를 받는다
begin
은 시작의 위치를 나타내고 Alignment
로 정한다
end
는 당연히 끝 점이고 마찬가지로 Alignment
로 정한다