142 lines
3.9 KiB
Dart
142 lines
3.9 KiB
Dart
|
// import 'package:flutter/material.dart';
|
||
|
// import 'package:flutter/services.dart';
|
||
|
|
||
|
// // ignore: must_be_immutable
|
||
|
// class InteractionTextField extends StatelessWidget {
|
||
|
// String labelText;
|
||
|
// TextEditingController controller;
|
||
|
// String? hintText;
|
||
|
// IconButton? suffixIcon;
|
||
|
// bool? enabled = true;
|
||
|
// bool? obscure = false;
|
||
|
// Function onChanged;
|
||
|
// TextInputType? inputType;
|
||
|
// int? maxchars = 0;
|
||
|
// int? maxlines = 1;
|
||
|
// int? minlines = 0;
|
||
|
// InteractionTextField(
|
||
|
// {super.key,
|
||
|
// required this.controller,
|
||
|
// this.hintText,
|
||
|
// required this.labelText,
|
||
|
// this.suffixIcon,
|
||
|
// this.enabled,
|
||
|
// this.maxchars,
|
||
|
// this.maxlines,
|
||
|
// this.inputType,
|
||
|
// this.minlines,
|
||
|
// required this.onChanged,
|
||
|
// this.obscure});
|
||
|
|
||
|
// @override
|
||
|
// Widget build(BuildContext context) {
|
||
|
// return TextField(
|
||
|
// controller: controller,
|
||
|
// style: const TextStyle(fontSize: 16),
|
||
|
// enabled: enabled,
|
||
|
// obscureText: obscure ?? false,
|
||
|
// onTap: () {},
|
||
|
// maxLines: maxlines ?? 1,
|
||
|
// minLines: minlines,
|
||
|
// keyboardType: inputType ?? TextInputType.name,
|
||
|
// onChanged: (value) {
|
||
|
// onChanged(value);
|
||
|
// },
|
||
|
// onSubmitted: (value) {
|
||
|
// onChanged(value);
|
||
|
// },
|
||
|
// inputFormatters: [
|
||
|
// inputType == TextInputType.number
|
||
|
// ? FilteringTextInputFormatter.digitsOnly
|
||
|
// : maxchars == 0
|
||
|
// ? LengthLimitingTextInputFormatter(100)
|
||
|
// : LengthLimitingTextInputFormatter(maxchars),
|
||
|
// ],
|
||
|
// decoration: InputDecoration(
|
||
|
// isDense: true,
|
||
|
// // contentPadding: const EdgeInsets.symmetric(
|
||
|
// // horizontal: 10,
|
||
|
// // vertical: 18,
|
||
|
// // ),
|
||
|
// contentPadding: EdgeInsets.all(13.0),
|
||
|
// border: OutlineInputBorder(
|
||
|
// borderRadius: BorderRadius.circular(10.0),
|
||
|
// ),
|
||
|
// suffixIcon: suffixIcon,
|
||
|
// hintText: hintText,
|
||
|
// ),
|
||
|
// );
|
||
|
// }
|
||
|
// }
|
||
|
|
||
|
import 'package:flutter/material.dart';
|
||
|
import 'package:flutter/services.dart';
|
||
|
|
||
|
// ignore: must_be_immutable
|
||
|
class InteractionTextField extends StatelessWidget {
|
||
|
String labelText;
|
||
|
TextEditingController controller;
|
||
|
String? hintText;
|
||
|
IconButton? suffixIcon;
|
||
|
bool? enabled = true;
|
||
|
bool? obscure = false;
|
||
|
Function onChanged;
|
||
|
TextInputType? inputType;
|
||
|
int? maxchars = 0;
|
||
|
int? maxlines = 1;
|
||
|
int? minlines = 0;
|
||
|
InteractionTextField(
|
||
|
{super.key,
|
||
|
required this.controller,
|
||
|
this.hintText,
|
||
|
required this.labelText,
|
||
|
this.suffixIcon,
|
||
|
this.enabled,
|
||
|
this.maxchars,
|
||
|
this.maxlines,
|
||
|
this.inputType,
|
||
|
this.minlines,
|
||
|
required this.onChanged,
|
||
|
this.obscure});
|
||
|
|
||
|
@override
|
||
|
Widget build(BuildContext context) {
|
||
|
return TextField(
|
||
|
controller: controller,
|
||
|
style: const TextStyle(fontSize: 16),
|
||
|
enabled: enabled,
|
||
|
obscureText: obscure ?? false,
|
||
|
onTap: () {},
|
||
|
maxLines: maxlines ?? 1,
|
||
|
minLines: minlines,
|
||
|
keyboardType: inputType ?? TextInputType.name,
|
||
|
onChanged: (value) {
|
||
|
onChanged(value);
|
||
|
},
|
||
|
onSubmitted: (value) {
|
||
|
onChanged(value);
|
||
|
},
|
||
|
inputFormatters: [
|
||
|
inputType == TextInputType.number
|
||
|
? FilteringTextInputFormatter.digitsOnly
|
||
|
: maxchars == 0
|
||
|
? LengthLimitingTextInputFormatter(100)
|
||
|
: LengthLimitingTextInputFormatter(maxchars),
|
||
|
],
|
||
|
decoration: InputDecoration(
|
||
|
isDense: true,
|
||
|
// contentPadding: const EdgeInsets.symmetric(
|
||
|
// horizontal: 10,
|
||
|
// vertical: 18,
|
||
|
// ),
|
||
|
contentPadding: EdgeInsets.all(13.0),
|
||
|
border: OutlineInputBorder(
|
||
|
borderRadius: BorderRadius.circular(10.0),
|
||
|
),
|
||
|
suffixIcon: suffixIcon,
|
||
|
hintText: hintText,
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
}
|