最小代码:

import 'package:intl/intl.dart';

import 'package:flutter/material.dart';

void main() => runApp(MaterialApp(home: MyPage()));

class MyPage extends StatelessWidget {

final _controller = TextEditingController(text: "");

@override

Widget build(BuildContext context) {

return Scaffold(

body: Padding(

padding: const EdgeInsets.all(44.0),

child: Center(

child: TextField(

controller: _controller,

keyboardType: TextInputType.number,

onChanged: (string) {

string = string.replaceAll(RegExp(","), "");

string = _formattedString(string);

_controller.text = string;

_controller.selection = TextSelection.fromPosition(TextPosition(offset: string.length));

},

),

),

),

);

}

_formattedString(string) {

final format = NumberFormat.decimalPattern();

return format.format(int.parse(string));

}

}

[在Android和iOS上运行此代码,输入123456789之类的数字,在Android中,它会打印一些奇怪的序列,但在iOS中确实有效。谁能告诉我代码有什么问题吗?

Android输出

eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9oOExhUS5naWYifQ==

iOS输出

eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9xb3NOei5naWYifQ==

0

投票

将此添加到软件包的pubspec.yaml文件中:

依赖关系:flutter_masked_text:^ 0.8.0 创建蒙版控制器 将控制器设置为您的文本字段:

class MyPage extends StatelessWidget { var _controller = new MaskedTextController(mask: '000,000,000,00');

@override

Widget build(BuildContext context) {

return Scaffold(

body: Padding(

padding: const EdgeInsets.all(44.0),

child: Center(

child: TextField(controller: _controller)

)

)

);

}

}

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐