phone_form_field

Flutter 手机输入,集成了 Flutter 国际化。

特点

  • 完全跨平台,这是一个仅Dart的包/依赖
  • 国际化支持,没有包含所有翻译的臃肿json文件。
  • 电话号码验证
  • 扩展Flutter的FormField
  • 使用dart phone_numbers_parser进行解析

演示

演示地址:https://cedvdb.github.io/phone_form_field/

demo_image

用法

PhoneFormField(
  initialValue: phoneNumber,
  autofocus: true,
  decoration: InputDecoration(
    labelText: 'Phone',
    border: OutlineInputBorder(),
    // ...
  ),
  onChanged: (p) => setState(() => phoneNumber = p!),
  onSaved: (p) => setState(() => phoneNumber = p),
  phoneNumberType: null, // could be PhoneNumberType.mobile or phoneNumberType.fixed for more specific validation

),

国际化

包含委托

  return MaterialApp(
    localizationsDelegates: [
      ...GlobalMaterialLocalizations.delegates,
      PhoneFieldLocalization.delegate
    ],
    supportedLocales: [
      const Locale('en', ''),
      const Locale('es', ''),
      const Locale('fr', ''),
      const Locale('ru', ''),
      // ...
    ],

就这些了。

内置了许多语言

- 'ar',
- 'de',
- 'en',
- 'es',
- 'fr',
- 'hin',
- 'it',
- 'nl',
- 'pt',
- 'ru',
- 'zh',

如果目标语言未被支持,您可以提交包含assets/translation中翻译文件的pull request

GitHub

https://github.com/cedvdb/phone_form_field