buildInputItem static method
Widget
buildInputItem({
- String? title,
- String? subTitle,
- Color? titleColor,
- Color? bgColor,
- String? unitName,
- String? inputHint,
- String? text,
- TextStyle? style,
- TextStyle? hintStyle,
- EdgeInsetsGeometry? padding,
- bool setPadding = false,
- dynamic onchanged(
- String value
- bool enable = true,
- int? decimalRange,
- int integerRange = 10,
- double? height = 48,
- List<
TextInputFormatter> ? formatter, - TextEditingController? controller,
- bool digitsOnly = false,
- bool numOnly = false,
- bool hasHorizontalPadding = true,
- bool isDivide = false,
- bool showRedStar = false,
digitsOnly: 数字,只能是整数 numOnly: 数字,包括小数 intRange:整数位最大长度,默认为10
Implementation
static Widget buildInputItem(
{String? title,
String? subTitle,
Color? titleColor,
Color? bgColor,
String? unitName,
String? inputHint,
String? text,
TextStyle? style,
TextStyle? hintStyle,
EdgeInsetsGeometry? padding,
bool setPadding = false,
Function(String value)? onchanged,
bool enable = true,
int? decimalRange,
int integerRange = 10,
double? height = 48,
List<TextInputFormatter>? formatter,
TextEditingController? controller,
bool digitsOnly = false,
bool numOnly = false,
bool hasHorizontalPadding = true,
bool isDivide = false,
bool showRedStar = false}) {
return Column(
children: [
Container(
color: bgColor ?? FXColor.main_white,
padding: setPadding
? padding
: hasHorizontalPadding
? const EdgeInsets.all(12)
: const EdgeInsets.symmetric(vertical: 12),
height: height,
child: Row(
children: [
FXText(title ?? "",
style: FXText.content
.apply(color: titleColor ?? FXColor.main_black2)),
if (showRedStar)
ImageUtil.assetImage("images/ic_redstar.png",
width: 15, height: 15),
const SizedBox(width: 4),
FXText(subTitle ?? "",
style: FXText.content
.apply(color: FXColor.main_black4, fontSizeDelta: -2)),
const SizedBox(width: 8),
Expanded(
child: TextFormField(
controller: text == null ? controller : null,
enabled: enable,
initialValue: text,
textAlign: TextAlign.right,
keyboardType: numOnly || digitsOnly
? const TextInputType.numberWithOptions(decimal: true)
: null,
inputFormatters: [
if (digitsOnly) FilteringTextInputFormatter.digitsOnly,
if (numOnly) ...[
Remove0PrefixFormatter(),
DecimalTextInputFormatter(
decimalRange: decimalRange ?? 2,
integerRange: integerRange),
FilteringTextInputFormatter.allow(RegExp("[0-9.]")),
...?formatter,
]
],
decoration: InputDecoration(
isCollapsed: true,
border: InputBorder.none,
hintText: inputHint,
hintStyle: hintStyle ??
FXText.content.apply(color: FXColor.main_black4)),
onChanged: onchanged,
style: style),
),
if (unitName != null && unitName.isNotEmpty) ...[
const SizedBox(
width: 4,
),
FXText(unitName,
style: FXText.content.apply(color: FXColor.main_black1)),
],
],
),
),
if (isDivide)
EditCommonUi.buildDividerItem(
isMargin: hasHorizontalPadding ? true : false),
],
);
}