1.设置textField输入内容
01.设置输入内容为小数、整数、文字
inputFormatters: widget.isShowPoint
? [WhitelistingTextInputFormatter(RegExp("[0-9.]"))]
: [WhitelistingTextInputFormatter.digitsOnly],
WhitelistingTextInputFormatter(RegExp("[a-zA-Z]"))
02.设置显示内容、光标位置
TextEditingController.fromValue(TextEditingValue(
// 设置内容
text: '${widget.textNum}',
// 保持光标在最后
selection: TextSelection.fromPosition(TextPosition(
affinity: TextAffinity.downstream,
offset: '${widget.textNum}'.length)))),
03.设置边框、内容位置
decoration: InputDecoration(
border: InputBorder.none,//下划线
contentPadding: EdgeInsets.symmetric(vertical: 0),//内容位置),
04.密文设置
obscureText: false
05.光标
//光标颜色
cursorColor: Colors.red,
//光标宽度
cursorWidth: 5.0,
//光标圆角弧度
cursorRadius: Radius.circular(5.0),
06. 去掉数字计数器
return TextField(
decoration: InputDecoration(
border: InputBorder.none, // 去掉下滑线
counterText: '', // 去除输入框底部的字符计数
),
);
2.类型转换
01. 整数
String text='100';
int.parse(text);
02.浮点型double
String text='100.05';
double.parse(text);
3.获取string中某个特殊符号的下标
String str='12023.004';
int pointBefore = str.indexOf('.');
4.Container的属性
1.当Container中同时设置color与decoration时,需要将color在decoration中进行设置
Container(decoration: BoxDecoration(color:Colors.white,borderRadius:BorderRadius.circular(4)
))
5.计算精度丢失问题
插件地址:https://github.com/Sky24n/common_utils
### Dart常用工具类库 [common_utils](https://github.com/Sky24n/common_utils)
1、TimelineUtil : 时间轴.(新)
2、TimerUtil : 倒计时,定时任务.(新)
3、MoneyUtil : 精确转换,元转分,分转元,支持格式输出.(新)
4、LogUtil : 简单封装打印日志.(新)
5、DateUtil : 日期转换格式化输出.
6、RegexUtil : 正则验证手机号,身份证,邮箱等等.
7、NumUtil : 保留x位小数, 精确加、减、乘、除, 防止精度丢失.
8、ObjectUtil : 判断对象是否为空(String List Map),判断两个List是否相等.
6.软键盘遮挡问题
Scaffold(
resizeToAvoidBottomInset: false,(这个属性是用在我们外层的Scaffold中,这个值为false时,在软键盘弹出时不会触发调整整体大小。)
backgroundColor: Colors.white,
body: _buildVerticalLayout()
);
7.横竖屏组件OrientationBuilder
Flutter中提供了一个OrientationBuilder的小部件,OrientationBuilder可以在设备的方向发生改变的时候,重新构建布局。OrientationBuilder有一个builder函数来构建我们的布局。当设备的方向发生改变的时候,就会调用builder函数。orientation的值有两个,Orientation.landscape和Orientation.portrait。
Scaffold(
backgroundColor: Colors.white,
body: OrientationBuilder(builder: (context, orientation) {
return orientation == Orientation.portrait ? _buildVerticalLayout() : _buildHorizontalLayout();
}))