dpad 1.2.2
dpad: ^1.2.2 copied to clipboard
Flutter TV D-pad navigation system - as simple as native Android development
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.2.2 - 2025-11-25 #
Added #
- Auto-scroll feature for
DpadFocusableto ensure focused widgets are fully visible autoScrollparameter to enable/disable auto-scroll (default:true)scrollPaddingparameter to control extra padding around focused widgets (default:24.0)- Smart scrolling algorithm that handles both horizontal and vertical scroll containers
scrollToFocus()method inDpadutility class for programmatic scroll control
Improved #
- Focus effects like glow, shadows, and borders are now fully visible at viewport edges
- Enhanced InheritedWidget pattern with
_DpadNavigatorScopefor O(1) ancestor lookup - Instance-based
FocusHistoryManagerperDpadNavigatorfor proper scope isolation - Better duplicate recording prevention with
lastPoppedEntrytracking
Fixed #
- Focus glow being clipped when items are at the edge of scrollable containers
1.2.1 - 2025-11-25 #
Fixed #
- Improved focus memory safety by removing excessive FocusNode validation checks
- Fixed context-based focus history retrieval in Dpad utility methods
- Simplified FocusNode.isValid check for better performance and reliability
- Updated DpadCore methods to require context parameter for navigator-scoped history
- Fixed DpadNavigator scope isolation for independent focus history per navigator
Improved #
- Enhanced error handling for disposed FocusNode detection
- Optimized focus restoration logic to avoid redundant validation
- Streamlined example code by removing debug shortcuts for focus history
- Updated documentation to reflect context-based API changes
1.2.0 - 2025-11-23 #
Added #
- Focus memory system for intelligent focus restoration
FocusMemoryOptionsconfiguration for focus memory settingsregionproperty inDpadFocusablefor area identificationonNavigateBackcallback inDpadNavigatorfor custom back navigation logic- Stack-based focus history management with configurable size limits
- Route and region aware focus restoration
Features #
- Automatic focus position restoration when returning to previous areas
- Tab switching memory - returns to previously selected tab
- Filter navigation memory - returns to previously selected filter option
- Cross-route focus history tracking
- Configurable focus memory size and regions
- Complete backward compatibility with existing APIs
1.1.0 - 2025-11-14 #
Added #
- Sequential navigation support with
navigateNext()andnavigatePrevious()methods - Default keyboard shortcuts for sequential navigation:
- Tab/Shift+Tab for next/previous navigation
- Media Track Next/Previous for media control
- Channel Up/Down for TV remote sequential navigation
- Enhanced documentation for sequential navigation use cases
Features #
- Logical focus traversal order navigation (independent of spatial positioning)
- Media player control support
- Form field sequential navigation
- List and grid item navigation
- TV remote channel button support
1.0.0 - 2025-11-14 #
Added #
- Initial release of Dpad - Flutter TV Navigation System
DpadNavigatorwidget for global D-pad event handlingDpadFocusablewidget for making any widget focusableFocusEffectsclass with 8+ built-in focus effects:- Border highlight
- Glow/shadow effect
- Scale animation
- Gradient background
- Elevation effect
- Combined scale and border
- Opacity transition
- Color tint effect
Dpadutility class for programmatic navigation- Support for custom keyboard shortcuts
- Platform-specific key handling (menu, back, select)
- Full compatibility with Flutter's native focus system
- Support for Android TV, Fire TV, Apple TV, and game controllers
- Complete documentation and examples
- TypeScript-like strong typing throughout
- Performance optimizations for smooth navigation
Features #
- Simple 3-step setup process
- Custom focus effect builders
- Programmatic focus control
- Custom keyboard shortcuts support
- Multi-platform TV support
- Built-in accessibility features
- Seamless Flutter integration
Documentation #
- Comprehensive README with examples
- API documentation in source code
- Example app demonstrating all features
- Migration guide from other solutions