CwTextField2 Documentation
Overview
The CwTextField2 is a flexible and customizable text input field for Flutter, providing various options to manage user input. It supports various features like prefix/suffix icons, input validation, error handling, autofocus, and more. The widget allows for fine-tuned control over the appearance, behavior, and formatting of the text field.
Parameters Explanation
Required Parameters
controller: TheTextEditingControllerto manage the text field’s content.onChanged: A callback function triggered when the text in the field changes.
Optional Parameters
label: The label text displayed inside the text field.hint: The placeholder text displayed when no input is provided.minLine: Minimum number of lines the text field should have.maxLine: Maximum number of lines the text field should support.maxCharacter: The maximum number of characters allowed in the text field.keyboardType: The type of keyboard to be displayed (e.g.,TextInputType.text,TextInputType.number).leadingSpaceforTextAllowed: Whether leading spaces are allowed in the text field (default:false).error: Error message to be displayed when validation fails.prefixText: Text displayed as a prefix inside the text field.filledColor: Background color of the text field.initialValue: The initial value of the text field.customPrefixIcon: Custom widget displayed as a prefix icon.suffixIcon: Icon displayed as a suffix to the text field.customSuffixIcon: Custom widget displayed as a suffix icon.validator: A function for validating the input.onTap: A callback function triggered when the text field is tapped.readOnly: Whether the text field is read-only (default:false).labelStyle: Custom style for the label text.textInputAction: Action to be performed when the user presses the "Enter" key.autoFocus: Whether the text field should automatically gain focus when displayed (default:false).prefixIcon: Icon displayed as a prefix icon (can be used withcustomPrefixIcon).showCounter: Whether to display a character counter (default:false).focusNode: TheFocusNodeto manage focus state.inputValidator: A list of input formatters to apply custom formatting to the text input.hintTextStyle: Custom text style for the hint text.autovalidateMode: Determines when validation should occur (default:AutovalidateMode.onUserInteraction).valueTextStyle: Text style for the input value.focusedBorderColor: Border color when the text field is focused.focusedBorderWidth: Border width when the text field is focused.showCursor: Whether to show the cursor in the text field (default:true).cursorColor: The color of the cursor.cursorHeight: The height of the cursor.enableInteractiveSelection: Whether the user can interactively select text within the field (default:true).
Usage Examples
1. Basic TextField2 with Label and Hint
A simple text field with label and hint text.
CwTextfield2(
controller: TextEditingController(),
label: 'Username',
hint: 'Enter your username',
onChanged: (value) => print('Text changed: $value'),
)
2. TextField2 with Prefix and Suffix Icons
A text field with prefix and suffix icons.
CwTextfield2(
controller: TextEditingController(),
label: 'Email',
hint: 'Enter your email address',
prefixIcon: Icons.email,
suffixIcon: Icons.clear,
onChanged: (value) => print('Text changed: $value'),
)
3. TextField2 with Validation and Error Handling
A text field with custom validation and error display.
CwTextfield2(
controller: TextEditingController(),
label: 'Password',
hint: 'Enter your password',
validator: (value) {
if (value == null || value.isEmpty) {
return 'Password cannot be empty';
}
return null;
},
error: 'Invalid password',
onChanged: (value) => print('Text changed: $value'),
)
4. TextField2 with AutoFocus and Custom Styling
A text field with autofocus and custom border styling.
CwTextfield2(
controller: TextEditingController(),
label: 'Phone Number',
hint: 'Enter your phone number',
autoFocus: true,
focusedBorderColor: Colors.blue,
focusedBorderWidth: 2,
onChanged: (value) => print('Text changed: $value'),
)
Error Handling and Validation
validator: A function to validate the input. If it returns a string, the error message will be displayed.error: An optional error message that can be displayed outside of the validation function.
Border Customization
focusedBorderColor: Custom color for the text field’s border when focused.focusedBorderWidth: Custom width for the border when the text field is focused.
Source Code Repository
Find the full source code on GitHub: GitHub Repository