fix(virtual-scroll): use correct item top calculation with header or footer function (#15948) (#17345)

- use the right index in updateVDom to update the top transition ()
- extend unit test to verify the top is also calculated right with a given headerFn and footerFn
- update the visibility of the node also if a given approxHeaderHeight/approxFooterHeight matches the calculated height

fixes #15948 fixes #17298
This commit is contained in:
David Boho
2019-03-26 21:17:03 +01:00
committed by Brandy Carney
parent 016fa16d44
commit a8a48a4ca4
3 changed files with 14 additions and 9 deletions

View File

@ -327,9 +327,9 @@ export class VirtualScroll implements ComponentInterface {
if (cell !== this.cells[index]) {
return;
}
cell.visible = true;
if (cell.height !== height) {
console.debug(`[virtual] cell height changed ${cell.height}px -> ${height}px`);
if (cell.height !== height || cell.visible !== true) {
console.debug(`[virtual] cell height or visibility changed ${cell.height}px -> ${height}px`);
cell.visible = true;
cell.height = height;
this.indexDirty = Math.min(this.indexDirty, index);
this.scheduleUpdate();