flutterbootcamp / brasil_fields

O jeito mais fácil de utilizar padrões e formatos brasileiros em seu projeto
https://flutterbootcamp.github.io/brasil_fields/#/
Other
134 stars 41 forks source link

Problema no iOS #76

Closed syg-fabiana closed 1 year ago

syg-fabiana commented 1 year ago

Meu chefe tem o iphone 14, no celular dele a mask não funciona, não permite o click no imput, ja testei em outros iphones e em celulares andriod funcionam perfeitamente, saberia me dizer oq posso fazer para resolver esse problema?

rubensdemelo commented 1 year ago

Eu tenho o iphone 14 e funciona normalmente. Como esta o codigo ?

syg-fabiana commented 1 year ago
import 'package:brasil_fields/brasil_fields.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';

class MaskCnpj extends StatefulWidget {
  const MaskCnpj({
    Key? key,
    this.width,
    this.height,
    this.color,
    this.colorBorder,
 this.colorsecond,
  }) : super(key: key);

  final double? width;
  final double? height;
  final Color? color;
  final Color? colorBorder;
  final Color? colorsecond;

  @override
  _MaskCnpjState createState() => _MaskCnpjState();
}

class _MaskCnpjState extends State<MaskCnpj> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'SCR',
      theme: ThemeData(primarySwatch: Colors.blue),
      home: DefaultTabController(
        length: 3,
        child: Scaffold(
           resizeToAvoidBottomInset: false,
          backgroundColor: const Color.fromRGBO(0, 0, 0, 0.0),
          body: Padding(
            padding: const EdgeInsets.all(0),
            child: Container(
              child:
                RowFormatters(
                  label: 'CNPJ Empresa',
                  cor: widget.color!,
                  corBorder: widget.colorBorder!,
                   segCor: widget.colorsecond!,
                  formatter: CnpjInputFormatter(),                  
                ),
            ),
          ),
        ),
      ),
    );
  }
}

class RowFormatters extends StatefulWidget {
  final String label;
  final TextInputFormatter formatter;
  final Color cor;
  final Color corBorder;
  final Color segCor;
  const RowFormatters({
    Key? key,
    required this.label,
    required this.formatter,
    required this.cor,
    required this.corBorder,
    required this.segCor,
  }) : super(key: key);

  @override
  State<RowFormatters> createState() => _RowFormattersState();
}

class _RowFormattersState extends State<RowFormatters> {
  @override
  Widget build(BuildContext context) {
    final control = TextEditingController(text: FFAppState().maskInputCnpj);
    return TextFormField(
       validator: (String? value) {
                        if (value != null && value.isEmpty) {
                          return 'Insira o CNPJ';
                        } if (value!.length < 11) {
                          return 'Campo CNPJ não recebe menos que 11 digitos, Confira seu CNPJ.';}
                        return null;},
      controller: control,
      keyboardType: TextInputType.text,
      onChanged: (s) {
        FFAppState().maskInputCnpj = control.text;
      },      
      obscureText: false,
      decoration: InputDecoration(        
        labelText: widget.label,
        labelStyle: TextStyle(
        color: widget.segCor ),
        enabledBorder: OutlineInputBorder(
          borderSide: BorderSide(
            color: widget.corBorder,
            width: 1,
          ),
          borderRadius: BorderRadius.circular(12),
        ),
        focusedBorder: OutlineInputBorder(
          borderSide: BorderSide(
            color: widget.corBorder,
            width: 1,
          ),
          borderRadius: BorderRadius.circular(12),
        ),
        errorBorder: OutlineInputBorder(
          borderSide: BorderSide(
            color: Color(0x00000000),
            width: 1,
          ),
          borderRadius: BorderRadius.circular(12),
        ),
        focusedErrorBorder: OutlineInputBorder(
          borderSide: BorderSide(
            color: Color(0x00000000),
            width: 1,
          ),
          borderRadius: BorderRadius.circular(12),
        ),
      ),
      style: FlutterFlowTheme.of(context).bodyText1.override(
            fontFamily: FlutterFlowTheme.of(context).bodyText1Family,
                color: widget.cor,
            fontSize: 12,
            useGoogleFonts: GoogleFonts.asMap()
                .containsKey(FlutterFlowTheme.of(context).bodyText1Family),
          ),
      inputFormatters: [
        FilteringTextInputFormatter.digitsOnly,
        widget.formatter,
      ],
    );
  }
}
syg-fabiana commented 1 year ago

o estranho é que testei em outro iphone e outros celulares android todos funcionam normalmente.

rubensdemelo commented 1 year ago

e somente com este formatter ?

syg-fabiana commented 1 year ago

não, estou usando telefone e cep tbm.

rubensdemelo commented 1 year ago

e quando tira o formatter, funciona ?

syg-fabiana commented 1 year ago

vou fazer e pedi ao meu chefe para testar.