Flutter - 国际电话字段 - 检查相关国家电话号码的最大长度

问题描述

我将 intl_phone_field 添加到我的 Flutter 应用程序中。它完美地工作。我用的是 2.0.1 版本。

我是这样写的;

IntlPhoneField(
                      decoration: Inputdecoration(
                        labelText: "Phone Number",labelStyle: TextStyle(
                          fontSize: 14.0,),hintStyle: TextStyle(
                          color: Colors.grey,fontSize: 10.0,initialCountryCode: 'US',//default country code
                      onChanged: (phone) {
                        //when phone number country code is changed
                        print(phone.completeNumber); //get complete number
                        print(phone.countryCode); // get country code only
                        print(phone.number); // only phone number
                      },

好像是下面这张图。正如他们的开发人员在更新日志中提到的那样,他们添加了几个国家/地区的电话号码的最大长度。所以正如我在下面的图片中用红色箭头显示的那样,有一个长度字段。

phone number

电话号码长度因国家/地区而异。所以我的问题是,例如对于这张图片,我如何检查输入的 10/10 数字字符?

解决方法

访问这个值有点棘手,但你可以: 除了 intl_phone_field.dart:

之外,首先导入此文件
import 'package:intl_phone_field/countries.dart';

然后:

IntlPhoneField(
                  ...
                  onChanged: (phone) {
                    print(countries.firstWhere((element) => element['code'] == phone.countryISOCode)['max_length']);
                  },),