addTextFormField method

void addTextFormField({
  1. String? key,
  2. String? labelText,
  3. InputDecoration? inputDecoration,
  4. TextInputType? inputType,
  5. bool? obscureText,
})

添加一个输入框表单项。

Implementation

void addTextFormField(
    {String? key,
    String? labelText,
    InputDecoration? inputDecoration,
    TextInputType? inputType,
    bool? obscureText}) {
  final TextStyle _style = TextStyle(color: _textColor);
  final OutlineInputBorder _focusedBorder = _outlineInputBorder.copyWith(
      borderSide:
          BorderSide(color: Theme.of(context).primaryColor, width: 2.0));
  final OutlineInputBorder _enabledBorder = _outlineInputBorder.copyWith(
      borderSide: BorderSide(color: _borderEnableColor));
  InputDecoration _defaultInputDecoration = InputDecoration(
    labelText: labelText ?? "Label",
    // 如果没有Label,errorBorder就不是roundborder
    labelStyle: _style,
    hintStyle: _style.copyWith(color: _hintColor),
    helperStyle: _style,
    border: kOutLineInputBorder,
    focusedBorder: _focusedBorder,
    enabledBorder: _enabledBorder,
  );
  if (inputDecoration != null) {
    // 设置默认配色
    _defaultInputDecoration = inputDecoration.copyWith(
      labelStyle: _style,
      hintStyle: _style.copyWith(color: _hintColor),
      helperStyle: _style,
      border: kOutLineInputBorder,
      focusedBorder: _focusedBorder,
      enabledBorder: _enabledBorder,
    );
  }
  Widget _widget = Padding(
    padding: kVerticalPaddingTen,
    child: TextFormField(
      keyboardType: inputType,
      style: _style,
      obscureText: obscureText ?? inputType == TextInputType.visiblePassword
          ? true
          : false,
      autofocus: true,
      decoration: _defaultInputDecoration,
      validator: (value) {
        // 验证
        if (value == null || value.isEmpty) {
          return "Please input it.";
        }
        return null;
      },
      onSaved: (value) {
        maps[key ?? 'field${maps.length}'] = value;
        // print("onSaved");
      },
    ),
  );

  _children.add(_widget);
}