GT TextField

pub package License: MIT

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.0.0

Then run:

flutter pub get

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.

Libraries

emoji_block_formatter
gt_textfield
GT TextField - A comprehensive Flutter text field package.
master_text_field
suggession_text_field