-
Notifications
You must be signed in to change notification settings - Fork 22
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
Vertical virtualization of horizontal lists. #167
Comments
This is not currently supported and requires either a listview inside a scrollview or a scrollview inside a listview. |
How can we solve this? Do you have any pointers? |
Hey! I have looked into this a bit in the past, but I'm facing a weird bug. You should know that the internals of the list are quite complex, and the simple case virtualized lists were already quite a struggle (until we found a smart solution). I might have some time to look into this in January, as it will become very important for my project as well. Even if we solve the bug I'm talking about, there will still be a challenge with saving the current focus position when we mount/unmount lists. If anyone wants to help with this issue, I could set up a little video call explaining the internals of the library. I think you might also be able to implement your own custom virtualization component on top of ours. // Store the virtualization window in a state, like "indices [3, 10] should be shown"
{rows.map((row, index) => {
<Row shouldBeHidden={shouldHide(virtualizationWindow, index)} data={row} />
})} There are a few challenges but you can make it work.
The counter intuitive part is that Rows should not be removed, they should render differently if they are "virtualized-out". |
Thank you for the detailed response. |
Many thanks to @pierpo for the detailed response. Previously, I attempted to address my issue using:
This approach seemed to work reasonably well. However, as development progressed, I encountered additional challenges and have now opted for a native solution. |
By native, do you mean only native solution, for example |
@ksvslk only native |
OK, cool. But what is the point of this repo then? |
This may help you README |
Actually the ideal state of this library would be to... not exist 😂 Nowadays, the native solution is getting better and better and you might probably be happy with it. The remaining notable advantage of this lib is the 100% cross-platform problem (there's still no "native solution" for web). I think I should clarify this in the README 😊 If you found a proper solution with the native approach, I think it's the best long-term option 😁 Do not worry though, we'll keep working on the library. But if you do not need web support, I'd advise to have a look at the native option 😉 I'm planning to have a fresh look at this vertical virtualization in the beginning of 2025 📆 |
Web support is a must. So helpful repo! |
Is your feature request related to a problem? Please describe.
Could you provide an example of vertical virtualization for a horizontal list, similar to the UI shown below?
Describe the solution you'd like
A clear and concise description of what you want to happen.
Diagrams and screenshots welcome!
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
The text was updated successfully, but these errors were encountered: