-
Notifications
You must be signed in to change notification settings - Fork 6.8k
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
virtual-scroll: support multiple items per row #10114
Comments
@mmalerba any news about this? |
Most of our effort is focused on integrating with MDC right now. When I have time to do more work on virtual scroll, finishing up the missing parts of the autosize strategy will be my top priority , so this one might have to wait a while |
Hi @mmalerba any updates on this? Is there at least prevision if this feature will be on the pipeline? Thanks! |
+1 this would be amazing |
Any news about this? it seems it's currently not possible to build a real world contentful app with angular. :/ |
please give any update of possible |
In the meantime you can use display:grid by overriding the css
|
Any update on this? |
I got issues trying to use the display: grid technique above, it looked like it would work but then found it would randomly jump back to previously scrolled locations and was unusable. Official support for multi column would be amazing, +1 |
We solve it with modulo operator... |
The team does plan to work on this (and other virtual scroll features), but it won't happen this quarter. Our current areas of focus are component harnesses, integration with MDC Web, and the date range picker |
Great news, in the mean time, i solved it by chunking my data and wrapping it in a row component with a fixed height. I used BreakpointObserver from cdk layout to determine the amount of chunking required (ie. 1 thumbnail per row on mobile, up to 8 on desktop, depending on width) |
can you give some more information on that? |
Up |
https://github.com/rintoj/ngx-virtual-scroller Has an implementation of multiple items per row, if anyone wants to look at how it's done (or get something working today.) |
I was able to "chunk" my array into rows with 4 items each. Then the cdkVirtualFor becomes your rows, your [itemSize] becomes the height of the row, and you loop over the "columns" inside the virtualfor.
|
Is there any workaround to have multiple items per row when having |
Any Update on this? |
? |
@enesien This is a good alternative for the time being, thanks for posting this. |
Thank you for this. I had to add inline-block to <div class="col-3" *ngFor="let card of row"> get it work. |
@tdhulster, @mmalerba Particularly, we should set If you want 2 columns per row then itemSize = half value of size (in pixels)
|
I found it does not quite work, as while scroll past the itemSize, the component will unload one item of the viewport from the start, thus breaking the grid flow. @enesien chunks solution works best, as it would remove a complete row at once. |
Hi, is there any progress on this issue ? |
Yes, we must really need this feature with the Angular Virtual scroller component. At this moment Angular doesn't have any such 2 column grid system scroller. This is a huge issue, especially for large data sets with mobile devices. All other/3rd party component providers also heavily or only depend on Angular Virtual scroller. So we need this from Google Angular team. Any news about progress on this in 2022, please? |
Hi,, any update on above?? |
Bump. Any news? Waiting for grid support. |
bump |
Are there people interested in developing this together in pair/ensemble maybe? |
Bump again. Really need this.
I'm VERY impressed with this library. It's simple, fairly thin / not a huge dependency, and actually works quite well for the purpose. I think it could use a few small tweaks, but so far in my testing it's been very consistent across browsers. I do not know how well supported it will be on older browsers/devices, since it uses |
any news? |
Here is a great library for this feature. Please give a git
|
@mgechev please, add this function |
up |
This was opened in 2018. That's a little shocking. Can't believe the grid-list can't even dogfood angulars own virtual scrolling |
Add virtual scroll support to multiple columns per row Fixes angular#10114
Add virtual scroll support to multiple columns per row Fixes angular#10114
I implemented MultiColumnVirtualScrollStrategy similar to the FixedSizeVirtualScrollStrategy to achieve this, and here is the demo: https://storybook.jyuan.online/?path=/story/list--multiple-columns. Can I create a PR for this? |
Add virtual scroll support to multiple columns per row Fixes angular#10114
Nice. Does this automatically calculate viewport height? I've been using https://github.com/lVlyke/lithium-ngx-virtual-scroll as someone in this thread previously recommended. |
@lincolnthree I wrote this according to https://material.angular.io/cdk/scrolling/overview#scrolling-strategies. So it should has the same behavior as FixedSizeVirtualScrollStrategy. In the demo, the viewport height is 100%. |
Add virtual scroll support to multiple columns per row Fixes angular#10114
Add virtual scroll support to multiple columns per row. The viewport will list items with flex-wrap styles, and the width of each item has two types of values: fixed pixel and percentage. For example, {width: 200, height: 50} and {width: '25%', height: 50}. Fixes angular#10114
Hi @mmalerba, I merged the latest main branch and added a demo on the dev pages. I also added support to specify the item width in percentages. Please check the animation below and give some suggestions. It's not a virtual scroll on a grid; it's just list items using flex-wrap that automatically calculate the viewport height and render visible items in view. Screenshots from https://material-dev.jyuan.online/virtual-scroll |
Add virtual scroll support to multiple columns per row. The viewport will list items with flex-wrap styles, and the width of each item has two types of values: fixed pixel and percentage. For example, {width: 200, height: 50} and {width: '25%', height: 50}. Fixes angular#10114
Allow the user to specify the number of items per row in the fixed size scrolling strategy
The text was updated successfully, but these errors were encountered: