A flutter plugin to implement smooth scrolling on desktop and web.
Comparison
Without

With

Features
- Like the standard
ListView
but better - Scroll smoothly no matter what platform you're using (web, desktop, mobile)
- Scroll through
CustomListView
s using the directional keys on your keyboard - Support scroll switching between mouse and trackpad
Constructors
SmoothListView(...)
: behave exactly like a classicListView(...)
except that it makes scrolling with a mouse wheel smoother.SmoothListView.builder(...)
: behave exactly like a classicListView.builder(...)
except that it makes scrolling with a mouse wheel smoother.SmoothListView.adapative(...)
: behave exactly like a classicListView(...)
except that it allows you to easily switch between smooth scroll and classic scroll.SmoothListView.adaptiveBuilder(...)
: behave exactly like a classicListView.builder(...)
except that it allows you to easily switch between smooth scroll and classic scroll.
Getting started
First, add the package to your pubspec.yaml
:
flutter pub add smooth_list_view
Then import it inside your Dart code :
import 'package:smooth_list_view/smooth_list_view.dart';
Usage
Import the package :
import 'package:smooth_list_view/smooth_list_view.dart';
ListView
Replace :
// ...
@override
Widget build(BuildContext context) {
return ListView(...);
}
// ...
With :
// ...
@override
Widget build(BuildContext context) {
// You can keep the exact same parameters
return SmoothListView(...);
}
// ...
ListView.builder()
Replace :
// ...
@override
Widget build(BuildContext context) {
return ListView.builder(...);
}
// ...
With :
// ...
@override
Widget build(BuildContext context) {
// You can keep the exact same parameters
return SmoothListView.builder(...);
}
// ...
ListView.separated()
Replace :
// ...
@override
Widget build(BuildContext context) {
return ListView.separated(...);
}
// ...
With :
// ...
@override
Widget build(BuildContext context) {
// You can keep the exact same parameters
return SmoothListView.separated(...);
}
// ...
ListView.custom()
Replace :
// ...
@override
Widget build(BuildContext context) {
return ListView.custom(...);
}
// ...
With :
// ...
@override
Widget build(BuildContext context) {
// You can keep the exact same parameters
return SmoothListView.custom(...);
}
// ...
Additional information
Feel free to check the Example panel for a richer implementation.
If you encounter any issue feel free to open one on GitHub :)