Skip to content

Instantly share code, notes, and snippets.

@Frankdroid7
Created May 31, 2021 13:47
Show Gist options
  • Save Frankdroid7/80f8584244474da6f7db206208560398 to your computer and use it in GitHub Desktop.
Save Frankdroid7/80f8584244474da6f7db206208560398 to your computer and use it in GitHub Desktop.
class ScrollControllerPlayground extends StatefulWidget {
@override
_ScrollControllerPlaygroundState createState() =>
_ScrollControllerPlaygroundState();
}
class _ScrollControllerPlaygroundState
extends State<ScrollControllerPlayground> {
AppBar firstAppbar = AppBar(
title: Text('FIRST APPBAR'),
);
AppBar secondAppbar = AppBar(
title: Text('SECOND APPBAR'),
);
AppBar mAppBar;
ScrollController _scrollController;
@override
void initState() {
super.initState();
mAppBar = firstAppbar;
_scrollController = ScrollController()
..addListener(() {
print('OFFSET: ${_scrollController.offset}');
if (_scrollController.offset >= 105) {
setState(() {
mAppBar = secondAppbar;
});
} else {
setState(() {
mAppBar = firstAppbar;
});
}
});
}
@override
void dispose() {
_scrollController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: mAppBar,
body: SafeArea(
child: ListView.builder(
controller: _scrollController,
itemCount: 100,
itemBuilder: (context, index) {
return Text('Position: $index');
},
),
),
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment