[Flutter] textFormField validate with suffix Icon

bluejoy·2022년 11월 12일
0

Flutter

목록 보기
10/15

바로 코드


class _DiaryFilterInputState extends State<DiaryFilterInput> {
  bool isValid = false;
  final GlobalKey<FormState> _formKey = GlobalKey<FormState>();


  String? _validate(String? value) {
    if (value == null || value.isEmpty) {
      return '';
    }
    final tags = value.split(':');
    if (tags.length != 2 || tags[1].isEmpty) {
      return '태그 형식이 잘못 됐습니다.';
    }
    return null;
  }

  
  Widget build(BuildContext context) {
    return Form(
      key: _formKey,
      child: TextFormField(
        validator: _validate,
        onChanged: (String value) {
          setState(() {
            isValid = _formKey.currentState!.validate();
          });
        },
        controller: textEditingController,
        decoration: InputDecoration(
          border: const OutlineInputBorder(),
          suffixIcon: isValid
              ? IconButton(
                  onPressed: () {},
                  icon: const Icon(Icons.add_circle_rounded),
                )
              : const Icon(Icons.warning),
        ),
      ),
    );
  }
}
profile
개발자 지망생입니다.

0개의 댓글