【flutter】输入框控制输入类型和键盘、输入框抵住键盘、关闭键盘、强制横屏/竖屏

import 'package:flutter/services.dart';

1、键盘类型

TextField(
                keyboardType: TextInputType.number,
              ),

输入的类型

TextField(
       keyboardType: TextInputType.number,//键盘类型,数字键盘
       style: TextStyle(fontSize: ScreenUtil().setWidth(40), color: Colors.black),//输入文字样式
       controller: _cpyCode,//控制器
       decoration: InputDecoration(
       		hintText: '请输入6位公司编号',
       		hintStyle: TextStyle( fontWeight: FontWeight.w600, fontSize: ScreenUtil().setWidth(40), color: 			   Colors.grey[400]),
           border: InputBorder.none,
       ),
       inputFormatters: <TextInputFormatter>[
           WhitelistingTextInputFormatter.digitsOnly,//只输入数字
           LengthLimitingTextInputFormatter(6)//限制长度
       ],
       onChanged: _listenCpyCode,
)),

小数校验

class _UsNumberTextInputFormatter extends TextInputFormatter {
  static const defaultDouble = 0.001;
  static double strToFloat(String str, [double defaultValue = defaultDouble]) {
    try {
      return double.parse(str);
    } catch (e) {
      return defaultValue;
    }
  }

  @override
  TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
    String value = newValue.text;
    int selectionIndex = newValue.selection.end;
    if (value == ".") {
      value = "0.";
      selectionIndex++;
    } else if (value != "" && value != defaultDouble.toString() && strToFloat(value, defaultDouble) == defaultDouble) {
      value = oldValue.text;
      selectionIndex = oldValue.selection.end;
    }
    return new TextEditingValue(
      text: value,
      selection: new TextSelection.collapsed(offset: selectionIndex),
    );
  }
}

2、输入框抵住键盘

resizeToAvoidBottomPadding: false,

3、关闭键

FocusScope.of(context).requestFocus(FocusNode());

4、只能输入汉字或者字母或数字

inputFormatters: [
  WhitelistingTextInputFormatter(RegExp(
      "[a-zA-Z]|[\u4e00-\u9fa5]|[0-9]")), //只能输入汉字或者字母或数字
  LengthLimitingTextInputFormatter(maxLength),//最大长度
],

5\强制横屏/竖屏

void main(){
  // 强制横屏
  SystemChrome.setPreferredOrientations([
    DeviceOrientation.landscapeLeft,
    DeviceOrientation.landscapeRight
  ]);
 
  runApp(new MyApp());
}

void main(){
  // 强制竖屏
  SystemChrome.setPreferredOrientations([
    DeviceOrientation.portraitUp,
    DeviceOrientation.portraitDown
  ]);
 
  runApp(new MyApp());
}
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值