Flutter-常用设置

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();
}))

推荐阅读更多精彩内容