Skip to main content

a. Drop-in replacement

For some common scenarios, just add six letters - the "Smooth" prefix - and that's all!

package current status
  • The infra part is already implemented (hard, took me a month). The drop-in part and demo, which is mainly engineering work utilizing the exposed infra API, still has many improveable things, since these are the highest-level things and I spent my time mainly on the infra part. Feel free to issue and PR!
  • Need to wait for all PRs to Flutter to be merged and next Flutter release. (PR status here)

SmoothListView replacing ListView

For example, before:

ListView.builder(
itemCount: 123,
itemBuilder: (context, index) => MyItem(),
)

After:

SmoothListView.builder(
itemCount: 123,
itemBuilder: (context, index) => MyItem(),
)

Then, the ListView scrolling will be smooth, even if you have very heavy content to build and layout.

Page transition animations

For example, use SmoothMaterialPageRoute to replace MaterialPageRoute, SmoothPageRouteBuilder in place of PageRouteBuilder, etc. Then, the enter-page animation will be smooth, no matter how heavy the new page is to build and layout.

A concrete example - before:

Navigator.push(context, MaterialPageRoute(builder: MyFancyPage()));

After:

Navigator.push(context, SmoothMaterialPageRoute(builder: MyFancyPage()));