Understanding PageStorageKey in Flutter
Jatin kumar Sahoo
Flutter Web Developer at Skillmine ( Flutter || Dart || GETX || Provider || Bloc || Android || IOS || Flutter WEB ||AWS APP SYNC || Firebase Crashlytics || Google Map SDK) Flutter Developer
PageStorageKey is a tool in Flutter that helps preserve the state of widgets (like scroll position) when navigating between pages or tabs. It works with PageStorage to save and restore widget states, ensuring a smooth user experience.
Why Use PageStorageKey?
Without PageStorageKey, widgets like ListView reset their state (e.g., scroll position) when navigating away and back. PageStorageKey ensures:
Examples:
class PageStorageExample extends StatelessWidget {
final PageStorageBucket bucket = PageStorageBucket();
@override
Widget build(BuildContext context) {
return PPageStorage
bucket: bucket,
child: ListView.builder(
key: PageStorageKey('listViewKey'),
itemCount: 50,
itemBuilder: (context, index) => ListTile(title: Text('Item $index')),
),
);
}
}
TabBarView(
children: [
ListView(key: PageStorageKey('tab1'), children: [Text('Tab 1')]),
ListView(key: PageStorageKey('tab2'), children: [Text('Tab 2')]),
],
);
How It Works