scroll_texts_widget 0.1.3
scroll_texts_widget: ^0.1.3 copied to clipboard
Smooth horizontal marquee scrolling text ticker for Flutter. Supports streaming for long texts, cached rendering, and pause/progress controls.
Changelog #
0.1.3 #
- Documentation and README refinements.
0.1.2 #
- Added comprehensive Cookbook & Common Recipes to documentation (Pause on Hover, Tappable Headlines, Soft Edge Fading, Platform-Adaptive Composition).
- Enhanced example application with a pinned/sticky live ticker preview and interactive recipe switches.
- Added architecture & performance comparison detailing Canvas rendering vs. standard ScrollView approaches.
- Modernized installation instructions with CLI command and latest-version placeholder.
- Added hit-testing support to CustomPainters for transparent composition with
MouseRegionandGestureDetector. - Improved playback controller responsiveness and state synchronization during paused jumps.
0.1.1 #
- Enhanced package discoverability and category indexing on pub.dev.
- Added official pub.dev
topics(marquee,ticker,scrolling,text,animation). - Refined package description to improve search relevance for marquee and ticker queries.
0.1.0 #
✨ Major Architecture & Performance Overhaul ✨
🚀 New Features & Enhancements #
- Dual Render Modes (
ScrollTextRenderMode):cached: Pre-measures singleTextPainterand uses GPU clipping with zero layout operations insidepaint().streaming: Implements a sliding window tokenizer and queue that measures and paints only the text chunks currently visible inside the viewport window, delivering $O(\text{viewport})$ constant memory overhead.auto: Dynamically engages streaming for long texts and cached for short texts.
ScrollTextsController:- Read real-time pixel
offset,maxScrollExtent, normalizedprogress(0.0to1.0),currentTextIndex,isPaused, andeffectiveRenderMode. - Programmatic controls:
jumpTo(double offset),jumpToText(int index, {double offset}),pause(),resume(), andtogglePause().
- Read real-time pixel
- Position Initialization & Event Callbacks:
- Added
initialScrollOffsetandinitialTextIndex. - Added
initialDelayto configure startup pause before first scroll begins. - Added
repeatto configure continuous playlist looping vs. single-pass playback. - Added
onScrollChanged(double offset, int textIndex)andonTextCompleted(int textIndex)callbacks.
- Added
🔧 Bug Fixes & Stability #
- Fixed
LateInitializationErrorthrown when disposing widget with an emptytextslist. - Fixed unmounted async execution exception during
pauseDurationby addingmountedguards. - Fixed inter-text pause cycling to guarantee subsequent texts begin scrolling after
pauseDuration. - Fixed dynamic mid-scroll render mode switching across
auto,cached, andstreamingmodes. - Implemented
didUpdateWidgetfor dynamic updates of texts, speed, text styles, and controllers. - Eliminated full-widget
setState()rebuilds on each ticker frame by repainting viaChangeNotifierlistenables directly onCustomPaint. - Added unbounded constraint fallback protection in
LayoutBuilder.
0.0.1 #
🎉 Initial Release 🎉
- Initial release with
ScrollTextsWidgetmarquee scrolling.