Published 2026-10-30
copied due to outdated dependencies and bugs.
A CrossScroll is a flutter Package that permits it’s child views to be scrolled vertically and Horizontally. This is important because in many cases you need content to be scrolled on both side.
SingleChildScrollView have.


CrossScroll(child:Container(), ///your child
);
CrossScrollBar crossScrollBar=CrossScrollBar(thumb: ScrollThumb.alwaysShow,
track: ScrollTrack.show,
thickness: 8,
hoverThickness: 8,
thumbRadius: Radius.elliptical(8, 8));
final CrossScrollStyle _crossScrollStyle = CrossScrollStyle(
physics: BouncingScrollPhysics(),
keyboardDismissBehavior: ScrollViewKeyboardDismissBehavior.manual,
padding:const EdgeInsets.symmetric(vertical: 2),
);
CrossScrollBar(
controller: controller,
child: InfiniteCrossScroll(
maxRows: 10,
maxColumns: 10,
controller: controller,
cellSize: const Size(150, 150),
builder: (context, vicinity) => Container(
height: 150,
width: 150,
color: Color.fromARGB(255, Random().nextInt(255),
Random().nextInt(255), Random().nextInt(255)),
),
),
),
This project is licensed under the MIT License - see the LICENSE file for details.
Coming soon...
LateInitializationError crash in CrossScrollThumb — replaced late bool fields with initialized defaults.LateInitializationError crash in CrossScrollController — replaced late ScrollController with eagerly initialized controllers.ratio() — added guard when viewport equals thumb size.InfiniteCrossScroll — internally created CrossScrollController is now properly disposed.maxRows/maxColumns in InfiniteCrossScroll — maxXIndex now correctly maps to columns and maxYIndex to rows.Scaffold wrapper from CrossScroll and InfiniteCrossScroll — widgets can now be properly embedded in parent layouts.CrossScrollThumb where BOTTOM_LEFT was checked twice instead of BOTTOM_RIGHT.