You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2019/12/04 20:48:34 UTC
[royale-asjs] 02/02: tune ADG virtual scrolling. Should fix #609
This is an automated email from the ASF dual-hosted git repository.
aharui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 800fd575ad5f930a19d1e7954ce2c807e4c97bc5
Author: Alex Harui <ah...@apache.org>
AuthorDate: Wed Dec 4 12:48:12 2019 -0800
tune ADG virtual scrolling. Should fix #609
---
.../mx/controls/beads/DataGridLinesBeadForICollectionView.as | 2 +-
.../royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as | 8 +++++---
.../beads/layouts/AdvancedDataGridVirtualListVerticalLayout.as | 7 ++++---
3 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridLinesBeadForICollectionView.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridLinesBeadForICollectionView.as
index 290a4f5..818e1fd 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridLinesBeadForICollectionView.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridLinesBeadForICollectionView.as
@@ -73,7 +73,7 @@ package mx.controls.beads
var contentView:IParentIUIBase = layoutParent.contentView as IParentIUIBase;
var columns:Array = sharedModel.columns;
- var rowHeight:Number = presentationModel.rowHeight;
+ var rowHeight:Number = presentationModel.rowHeight + presentationModel.separatorThickness;
var n:int = getDataProviderLength();
var totalHeight:Number = n * rowHeight;
if (totalHeight < contentView.height)
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as
index 1e031e5..1adf495 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as
@@ -100,15 +100,17 @@ package mx.controls.beads.layouts
if (!displayedColumns) return retval;
var n:int = displayedColumns.length;
var listArea:IUIBase = (uiHost.view as IDataGridView).listArea;
+ var actualRowHeight:Number = presentationModel.rowHeight
+ + presentationModel.separatorThickness;
COMPILE::JS
{
- var topSpacerHeight:Number = Math.floor(listArea.element.scrollTop / presentationModel.rowHeight)
- * presentationModel.rowHeight;
+ var topSpacerHeight:Number = Math.floor(listArea.element.scrollTop / actualRowHeight)
+ * actualRowHeight;
}
var model:IDataGridModel = uiHost.model as IDataGridModel;
if (model.dataProvider && model.dataProvider.length)
{
- var totalHeight:Number = model.dataProvider.length * presentationModel.rowHeight;
+ var totalHeight:Number = model.dataProvider.length * actualRowHeight;
COMPILE::JS
{
if (!spacer)
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridVirtualListVerticalLayout.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridVirtualListVerticalLayout.as
index 33d72d6..f6ca342 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridVirtualListVerticalLayout.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridVirtualListVerticalLayout.as
@@ -247,7 +247,8 @@ package mx.controls.beads.layouts
return true;
}
var presentationModel:IListPresentationModel = (host as IStrandWithPresentationModel).presentationModel as IListPresentationModel;
- var totalHeight:Number = presentationModel.rowHeight * dp.length;
+ var actualRowHeight:Number = presentationModel.rowHeight + presentationModel.separatorThickness;
+ var totalHeight:Number = actualRowHeight * dp.length;
var viewportTop:Number = getVerticalScrollPosition();
// correct overscroll on Safari?
var top:String = host.element.style.top;
@@ -263,9 +264,9 @@ package mx.controls.beads.layouts
}
// end correct overscroll on Safari
var viewportHeight:Number = contentView.element.clientHeight;
- var startIndex:int = Math.floor(viewportTop / presentationModel.rowHeight);
+ var startIndex:int = Math.floor(viewportTop / actualRowHeight);
var factory:IDataProviderVirtualItemRendererMapper = host.getBeadByType(IDataProviderVirtualItemRendererMapper) as IDataProviderVirtualItemRendererMapper;
- var endIndex:int = Math.ceil((viewportTop + viewportHeight) / presentationModel.rowHeight);
+ var endIndex:int = Math.ceil((viewportTop + viewportHeight) / actualRowHeight);
var freeIndex:int;
var firstIndex:int;
var lastIndex:int;