Hi, I am unable to get the core virtual-list component to display more than one item per row.
Am referring to the docs at https://framework7.io/docs/virtual-list.html#virtual-list-parameters
From there it seems, just setting “cols” parameter to 2 (for example) will get the job done.
I tested by modifying the kitchen sink example and there is no luck ! The list still has only one item per row.
Thanks in advance for the help.
You also need to add actual styles to list items so they are displayed in 2 cols
1 Like
Thank you; that’s exactly the advice I needed.
For reference: I was able to get a 2 column grid by adding styles as commented below.
For the virtual list container:
<!-- virtual list container uses:
(1) the row class from the grid utilities
https://framework7.io/docs/grid.html
(2) the inline style "align-content" to fix problem of empty spaces between rows
https://stackoverflow.com/a/40890703/5412249
-->
<div class="list virtual-list row" style="align-content: flex-start;" />
For the item template:
<!-- col-50 class from the grid utilities ensures each item
takes half the width -->
<div class="col-50" style="height: 150px;">
<div>{{name}}</div>
</div>
While creating the list I used the following parameters:
var vlist = this.$app.virtualList.create({
el: '.virtual-list',
cols: 2, // tell virtual list how many columns are going to be there so that it can adjust it's height calculations correctly
createUl: false, // to disable <ul> <li> items from being rendered
items,
height: 150, // tell virtual list what the height of each item is going to be
itemTemplate: ... // reference to the item template listed above
});