-
Notifications
You must be signed in to change notification settings - Fork 429
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Always sticky feature #534
base: master
Are you sure you want to change the base?
Conversation
@manishPatwari let's update the docs as well once these changes are approved. |
@@ -110,6 +110,7 @@ export interface RecyclerListViewProps { | |||
scrollViewProps?: object; | |||
applyWindowCorrection?: (offsetX: number, offsetY: number, windowCorrection: WindowCorrection) => void; | |||
onItemLayout?: (index: number) => void; | |||
onSizeChange?: (rlvDimension: Dimension, contentDimension: Dimension) => void; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can use contentSizeChanged event of scrollview instead
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@naqvitalha does RLV's _onSizeChanged
get called on content size change or just container size change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ananyachandra14 contentSizeChanged
this gets called only for ScrollView container size has changed.
@naqvitalha We had to add this for any size change (RVL + ScrollView container).. and to know if the RLV is scrollable or not.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@manishPatwari can we add a callback for both RLV size change and content size change and force rerender in both?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change is for the same. RLV change hight is computed in onSize itself.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But I'm not sure if this will cover the scenario where our RLV size remains the same but we dynamically increase the widget heights so the RLV becomes scrollable. In that case the footer will always remain sticky. Correct me if I'm wrong.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It will cover that Ananya, RLV dimension is dependent on ScrollView. OnSizeChange, RLV dimension is computed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@manishPatwari there are two components which can change here:
- RLV layout size - which is the size of the container in which the content scrolls. This is the one which is covered by
ScrollComponent
'sonSizeChanged
and the changes for which have been added. - Content size - which is the size of the entire scrollable content. Check
LayoutManager
'sgetContentDimension
.
Imo RLV should check and give a callback for scrollable state change any time either of the above two changes. StickyContainer
should simply listen to this rather than determining on its own whether RLV is scrollable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done the changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome, checking
@manishPatwari approved 🤘 Kindly also add documentation for the new feature. Thanks! |
No description provided.