Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- StatefulWidget
- 함수
- BottomNavigationBar
- java
- 정보처리기사
- 안드로이드
- firebase
- 변수
- Null Safety
- Kotlin
- dart
- UserAccountsDrawerHeader
- GetX
- Cocoa touch Framework
- 이메일
- non-nullable
- Android
- firebase_auth
- 상태관리
- 1과목
- Provider
- 회원가입
- flutter
- IOS
- 로그인
- 안드로이드 스튜디오
- swift
- setState
- auth
- go_router
Archives
- Today
- Total
앱 개발 공부방
Flutter-validate, formkey 본문
728x90
위 화면처럼 TextFormField에 아무것도 안 쓰여있을 때 빨간색으로 에러를 보여주는 방법을 구현하겠습니다.
import 'package:flutter/material.dart';
class MyFormValidation extends StatefulWidget {
@override
_MyFormValidationState createState() => _MyFormValidationState();
}
class _MyFormValidationState extends State<MyFormValidation> {
final _formKey=GlobalKey<FormState>();//자식 위젯들을 구별하기 위해 global key를 사용할 수 있습니다. global key는 모든 위젯 계층을 통틀어 유니크 해야 합니다. global key는 주어진 위젯과 연결된 상태를 찾는 데 사용될 수 있습니다.
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('vaildation'),
),
body: Form(
key: _formKey,//formkey를 통해 fromstate를 알수있다.
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
TextFormField(
validator: (value){
if(value.isEmpty){
return '공백은 허용되지 않습니다.';
}
},
),
Padding(
padding: const EdgeInsets.all(8.0),
child: RaisedButton(onPressed: (){
if(_formKey.currentState.validate()){
Scaffold.of(_formKey.currentContext).showSnackBar(SnackBar(content: Text('처리중'),));
}
},
child: Text("완료"),
),
)
],
),
),
);
}
}
_formKey=GlobalKey <FormState>();
global key는 자식 위젯들을 구별하기 위해 사용하고, 모든 위젯을 통틀어 유니크해야 합니다.
또 주어진 위젯과 연결된 상태를 찾는 데 사용될 수 있습니다.
TextFormField
textfield와 거의 동일하지만 차이점은 폼 안에 넣어 사용하면서 추가적으로 입력값을 유효성 검증이나 다른 폼필드와의 연동 등의 기능을 제공한다.
validator
말 그대로 value값을 보고 유효성 검사를 하는 것
728x90
'FLUTTER' 카테고리의 다른 글
Flutter - Getx (0) | 2022.03.16 |
---|---|
Flutter - StatefulWidget Life cycle (0) | 2022.03.16 |
Flutter-TabBar (0) | 2020.10.31 |
Flutter-Drawer (0) | 2020.10.25 |
Flutter-AnimatedOpacity (0) | 2020.10.23 |
Comments