Saltar al contenido

¿Permitir solo dos números decimales en la entrada de aleteo?

Esta crónica ha sido analizado por especialistas para que tengas la garantía de la exactitud de este post.

Solución:

¡Aquí tienes! Espero eso ayude 🙂

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

import 'dart:math' as math;

void main() 
  runApp(new MaterialApp(home: new MyApp()));


class MyApp extends StatefulWidget 
  @override
  _MyAppState createState() => _MyAppState();


class _MyAppState extends State 
  @override
  Widget build(BuildContext context) 
    return Scaffold(
      appBar: AppBar(
        title: Text("Flutter"),
      ),
      body: Form(
        child: ListView(
          children: [
            TextFormField(
              inputFormatters: [DecimalTextInputFormatter(decimalRange: 2)],
              keyboardType: TextInputType.numberWithOptions(decimal: true),
            )
          ],
        ),
      ),
    );
  


class DecimalTextInputFormatter extends TextInputFormatter 

Aquí hay una solución que funciona para mí.

TextFormField(
    inputFormatters: [
        WhitelistingTextInputFormatter(RegExp(r'^d+.?d0,2')),
    ],
)

Si desea permitir entradas como (.21) o (.25)

Aquí hay una solución-

TextFormField(
    inputFormatters: [
        WhitelistingTextInputFormatter(RegExp(r'^(d+)?.?d0,2')),
    ],
)

Una versión más corta de DecimalTextInputFormatter usando Regexp:

class DecimalTextInputFormatter extends TextInputFormatter  decimalRange >= 0,
    'DecimalTextInputFormatter declaretion error') 
    String dp = (decimalRange != null && decimalRange > 0) ? "([.][0-9]0,$decimalRange)0,1" : "";
    String num = "[0-9]*$dp";

    if(activatedNegativeValues) 
      _exp = new RegExp("^((((-)0,1)
    else 
      _exp = new RegExp("^($num)0,1$");
    
  

  RegExp _exp;

  @override
  TextEditingValue formatEditUpdate(
    TextEditingValue oldValue,
    TextEditingValue newValue,
  ) 
    if(_exp.hasMatch(newValue.text))
      return newValue;
    
    return oldValue;
  

Te mostramos las comentarios y valoraciones de los lectores

Al final de todo puedes encontrar las interpretaciones de otros gestores de proyectos, tú además tienes la libertad de mostrar el tuyo si te gusta.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *