alphabet_navigation 2.1.0 alphabet_navigation: ^2.1.0 copied to clipboard
A Flutter package that provides an alphabetically indexed list view.
Alphabet Navigation #
alphabet_navigation
is a Flutter package that provides a dynamic, scrollable list view with an alphabetical index. It’s perfect for apps that need a quick and intuitive way to navigate long lists by alphabet.
Features #
- ✅ A vertical alphabetical navigation bar for quick access to sections.
- ✅ Smooth scrolling to the desired section when an alphabet is selected.
- ✅ Fully customizable list items and navigation styles.
- ✅ Built-in search bar for filtering items dynamically.
- ✅ Search field is optional & can be customized.
- ✅ Dynamic list height is optional & can be customized.
- ✅ Alphabetic list direction is configurable.
- ✅ Allow users to easily configure colors, fonts, and styles.
- ✅ Lightweight and easy to integrate into any Flutter project.
- ✅ Compatible with all platforms.
- ✅ Clear documentation.
Demo #
Installation #
To use the alphabet_navigation
package, follow these steps:
Run this on your project terminal:
flutter pub add alphabet_navigation
or manually configure pubspec.yml file
-
Add the package to your
pubspec.yaml
file:dependencies: alphabet_navigation: ^2.1.0 // replace with latest version
-
Run the following command to get the package:
flutter pub get
Usage #
Here’s how you can use the AlphabetNavigation
widget in your app:
Example 1:
AlphabetNavigation(
stringList: stringList, // Pass the string list for alphabet mapping
dynamicList: dynamicList, // Pass the dynamic list for content
dynamicListHeight: 80, // Dynamic list height (optional)
showSearchField: true, // Toggle for search field (optional)
circleSelectedLetter: true, // Is circle apply for the selected letter (optional)
itemBuilder: (context, index, searchFilterList) {}, // Item builder
)
Example 2:
AlphabetNavigation(
stringList: stringList, // Pass the string list for alphabet mapping
dynamicList: dynamicList, // Pass the dynamic list for content
searchFieldHintText: "Search here...", // Search field hint text
searchFieldTextStyle: TextStyle(
color: Colors.blue.shade800,
fontWeight: FontWeight.w500,
fontSize: 16,
),
searchFieldHintTextStyle: TextStyle(
color: Colors.grey.shade300,
fontWeight: FontWeight.w500,
fontSize: 16,
),
searchFieldIcon: Icon(Icons.search, color: Colors.blue.shade800,), // Search field icon
searchFieldEndIconColor: Colors.blue.shade800, // Search field clear icon color
listDirection: ListDirection.left, // Direction of the list. If [ListDirection.left], the list will be from right to left (optional)
showSearchField: true, // Toggle for search field (optional)
circleSelectedLetter: true, // Is circle apply for the selected letter (optional)
itemBuilder: (context, index, searchFilterList) {}, // Item builder
)
Example 3:
AlphabetNavigation(
stringList: stringList, // Pass the string list for alphabet mapping
dynamicList: dynamicList, // Pass the dynamic list for content
showSearchField: true, // Toggle for search field (optional)
alphabetListBackgroundColor: Colors.tealAccent, // Alphabet list background color
selectedColor: Colors.white70, // Selected color for the alphabet
unselectedColor: Colors.black38, // Unselected color for the alphabet
circleSelectedLetter: true, // Is circle apply for the selected letter (optional)
circleSelectedBackgroundColor: Colors.blue, // Selected circle background color
itemBuilder: (context, index, searchFilterList) {}, // Item builder
)
Example 4:
AlphabetNavigation(
stringList: stringList, // Pass the string list for alphabet mapping
dynamicList: dynamicList, // Pass the dynamic list for content
showSearchField: false, // Toggle for search field (optional)
circleSelectedLetter: false, // Is circle apply for the selected letter (optional)
itemBuilder: (context, index, searchFilterList) {}, // Item builder
)
Example 4:
AlphabetNavigation(
stringList: stringList, // Pass the string list for alphabet mapping
dynamicList: dynamicList, // Pass the dynamic list for content
circleSelectedLetter: false, // Is circle apply for the selected letter (optional)
itemBuilder: (context, index, searchFilterList) {}, // Item builder
)
Example 5:
AlphabetNavigation(
stringList: stringList, // Pass the string list for alphabet mapping
dynamicList: dynamicList, // Pass the dynamic list for content
circleSelectedLetter: false, // Is circle apply for the selected letter (optional)
alphabetListBackgroundColor: Colors.transparent, // Alphabet list background color
selectedColor: Colors.blue, // Selected color for the alphabet
unselectedColor: Colors.grey.shade600, // Unselected color for the alphabet
itemBuilder: (context, index, searchFilterList) {}, // Item builder
)
Example 6:
AlphabetNavigation(
stringList: stringList, // Pass the string list for alphabet mapping
dynamicList: dynamicList, // Pass the dynamic list for content
showSearchField: true, // Toggle for search field (optional)
circleSelectedLetter: true, // Is circle apply for the selected letter (optional)
circleBorderRadius: 50.0, // Border radius for the selected letter circle and alphabet list border
scrollAnimationCurve: Curves.easeInCubic, // Scroll animation curve
itemBuilder: (context, index, searchFilterList) {}, // Item builder
)
Example 1 | Example 2 | Example 3 |
---|---|---|
Example 4 | Example 5 | Example 6 |
---|---|---|
Parameters #
Parameter | Type | Description |
---|---|---|
stringList |
List<String> |
List of strings for alphabetical grouping. |
dynamicList |
List<dynamic> |
Data list to be displayed. |
dynamicListHeight |
double |
Dynamic list height. |
listDirection |
ListDirection |
Direction of the list. |
showSearchField |
bool |
Toggle for search field. |
searchFieldTextStyle |
TextStyle |
Search field text style. |
searchFieldHintText |
String |
Search field hint text. |
searchFieldHintTextStyle |
TextStyle |
Search field hint style. |
searchFieldIcon |
Icon |
Search field icon. |
searchFieldBackgroundColor |
Color |
Search field background color. |
searchFieldEndIconColor |
Color |
Search field icon color. |
alphabetListBackgroundColor |
Color |
Alphabet list background color. |
selectedColor |
Color |
Selected alphabet color |
unselectedColor |
Color |
Unselected alphabet color |
circleSelectedLetter |
bool |
Is circle apply for the selected letter. |
circleSelectedBackgroundColor |
Color |
Circle background color for the selected letter. |
circleBorderRadius |
double |
Border radius for the selected letter circle |
scrollAnimationCurve |
Curve |
Scroll animation curve. |
itemBuilder |
Function(BuildContext, int, dynamic) |
Function to build list items dynamically. |
Future Plans #
Here are some planned features for future releases:
- Accessibility Improvements: Enhanced support for voice-over and screen readers.
- Horizontal Navigation: Add support for horizontal alphabetical navigation.
- Custom Alphabet Set: Support for custom navigation sets like ['A', 'B', 'C', '1', '2', '3'].
- Multi-Language Support: Enable alphabetical navigation for other languages.
Contributing #
We welcome contributions from the community! If you encounter any issues or have feature suggestions, feel free to open an issue or submit a pull request on our GitHub repository.
Additional information #
License #
This project is licensed under the MIT License - see the LICENSE file for details.