extended_nested_scroll_view
Language: English | 中文简体
NestedScrollView: extended nested scroll view to fix following issues.
1.pinned sliver header issue
2.inner scrollables in tabview sync issue
3.do without ScrollController in NestedScrollView's body
Web demo for ExtendedNestedScrollView
Example for issue 1
give total height of pinned sliver headers in pinnedHeaderSliverHeightBuilder callback
var tabBarHeight = primaryTabBar.preferredSize.height;
var pinnedHeaderHeight =
statusBarHeight +
kToolbarHeight;
ExtendedNestedScrollView (
pinnedHeaderSliverHeightBuilder: () {
return pinnedHeaderHeight;
}
) ,
Example for issue 2
We usually keep list scroll position with following:
scene
onlyOneScrollInBody
description
AutomaticKeepAliveClientMixin
true
ScrollPosition will not be disposed, set onlyOneScrollInBody to true so that we can know which list is isActived.
PageStorageKey
false
ScrollPosition will be disposed, PageStorageKey just record the position info,the scroll positions in ExtendedNestedScrollView will always single one.
ExtendedNestedScrollView (
onlyOneScrollInBody: true ,
)
ExtendedVisibilityDetector
Provide ExtendedVisibilityDetector to point out which list is visible
ExtendedVisibilityDetector (
uniqueKey: const Key ('Tab1' ),
child: ListView (),
)
Do without ScrollController in NestedScrollView's body
due to we can't set ScrollController for list in NestedScrollView's body(it will breaking behaviours of InnerScrollController in NestedScrollView),provide Demos
pull to refresh
load more
scroll to top
show how to do it without ScrollController
pinned header height
show how to change pinned header height dynamically.