gt_textfield 1.1.0
gt_textfield: ^1.1.0 copied to clipboard
A comprehensive Flutter text field package with MasterTextField (advanced TextField/TextFormField wrapper) and SuggestionTextField with autocomplete and search history.
GT TextField #
A comprehensive Flutter text field package with MasterTextField (advanced TextField/TextFormField wrapper) and SuggestionTextField with autocomplete and search history.
Features #
- π MasterTextField - All TextField/TextFormField properties in one widget
- π SuggestionTextField - Autocomplete with search history
- πΎ Persistent History - Save search history via SharedPreferences
- π« EmojiBlockFormatter - Block emoji input in text fields
- βοΈ Highly Configurable - Every property exposed for customization
- β Validation Support - Auto-switches to TextFormField when validator provided
Installation #
Add to your pubspec.yaml:
dependencies:
gt_textfield: ^1.1.0
Then run:
flutter pub get
Requirements & Compatibility #
- Flutter SDK:
>=3.44.2 - Dart SDK:
>=3.12.0 <4.0.0 - iOS Compatibility: iOS
15.0+(compatible with modern Swift Package Manager integration)
Quick Start #
MasterTextField #
import 'package:gt_textfield/gt_textfield.dart';
MasterTextField(
labelText: 'Email',
hintText: 'Enter your email',
prefixIcon: Icons.email,
keyboardType: TextInputType.emailAddress,
validator: (value) {
if (value?.isEmpty ?? true) return 'Email is required';
return null;
},
)
MasterTextField with Custom Styling #
MasterTextField(
controller: _controller,
labelText: 'Username',
hintText: 'Enter username',
filled: true,
fillColor: Colors.grey[100],
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(12),
),
prefixIcon: Icons.person,
suffixIconWidget: IconButton(
icon: Icon(Icons.clear),
onPressed: () => _controller.clear(),
),
)
SuggestionTextField with History #
SuggestionTextField(
fieldName: 'search_field', // Unique ID for history storage
config: SuggestionFieldConfig(
storageType: HistoryStorageType.persistent,
maxHistoryItems: 10,
showHistoryIcon: true,
),
labelText: 'Search',
hintText: 'Search products...',
onSubmit: (text) => performSearch(text),
onSuggestionSelected: (suggestion) => performSearch(suggestion),
)
SuggestionTextField with Custom Suggestions #
SuggestionTextField(
fieldName: 'city_field',
staticSuggestions: ['New York', 'Los Angeles', 'Chicago', 'Houston'],
config: SuggestionFieldConfig(
showDeleteButton: true,
suggestionStyle: TextStyle(fontSize: 16),
),
)
Block Emoji Input #
MasterTextField(
labelText: 'Name',
inputFormatters: [EmojiBlockFormatter()],
)
MasterTextField Properties #
| Property | Type | Description |
|---|---|---|
controller |
TextEditingController? |
Text controller |
focusNode |
FocusNode? |
Focus node |
labelText |
String? |
Label text |
hintText |
String? |
Hint text |
prefixIcon |
IconData? |
Prefix icon |
suffixIcon |
IconData? |
Suffix icon |
validator |
FormFieldValidator? |
Validation function |
keyboardType |
TextInputType? |
Keyboard type |
obscureText |
bool |
Password field |
maxLines |
int? |
Maximum lines |
inputFormatters |
List<TextInputFormatter>? |
Input formatters |
SuggestionFieldConfig Options #
SuggestionFieldConfig(
storageType: HistoryStorageType.persistent,
maxHistoryItems: 10,
minCharsForSuggestion: 1,
showHistoryIcon: true,
showDeleteButton: true,
maxSuggestionsVisible: 5,
suggestionStyle: TextStyle(fontSize: 14),
historyIconColor: Colors.grey,
)
License #
MIT License - see LICENSE for details.