buildTextField function

Widget buildTextField(
  1. BuildContext context, {
  2. required TextEditingController controller,
  3. required String label,
  4. required String hint,
  5. TextInputType keyboardType = TextInputType.text,
  6. String? validator(
    1. String?
    )?,
  7. VoidCallback? onTap,
  8. bool? readOnly = false,
  9. int? maxLines = 1,
})

Implementation

Widget buildTextField(
    BuildContext context, {
    required TextEditingController controller,
    required String label,
    required String hint,
    TextInputType keyboardType = TextInputType.text,
    String? Function(String?)? validator,
    VoidCallback? onTap,
    bool? readOnly = false,
    int? maxLines = 1
  }) {
    return Padding(
      padding: EdgeInsets.only(bottom: getAdaptiveTextSize(context, 15)),
      child: TextFormField(
        controller: controller,
        keyboardType: keyboardType,
        style: TextStyle(fontSize: getAdaptiveTextSize(context, 14)),
        onTap: onTap,
        readOnly: readOnly ?? false,
        maxLines: maxLines ?? 1,
        decoration: InputDecoration(
          labelText: label,
          hintText: hint,
          labelStyle: TextStyle(
            fontSize: getAdaptiveTextSize(context, 13),
            color: customBlue,
          ),
          hintStyle: TextStyle(
              fontSize: getAdaptiveTextSize(context, 12), color: Colors.grey),
          border: OutlineInputBorder(
            borderRadius: BorderRadius.circular(8),
            borderSide: const BorderSide(color: Colors.grey, width: 1),
          ),
          enabledBorder: OutlineInputBorder(
            borderRadius: BorderRadius.circular(8),
            borderSide: const BorderSide(color: Colors.grey, width: 1),
          ),
          focusedBorder: OutlineInputBorder(
            borderRadius: BorderRadius.circular(8),
            borderSide: const BorderSide(color: customBlue, width: 2),
          ),
          errorBorder: OutlineInputBorder(
            borderRadius: BorderRadius.circular(8),
            borderSide: const BorderSide(color: Colors.red, width: 1),
          ),
          contentPadding: EdgeInsets.symmetric(
            horizontal: getAdaptiveTextSize(context, 12),
            vertical: getAdaptiveTextSize(context, 12),
          ),
        ),
        validator: validator,
      ),
    );
  }