Fix tests to pass on devices with floating density

Floor measure sizes
This commit is contained in:
hshristov
2015-04-17 14:15:52 +03:00
parent cd34bea39d
commit 93fa862ae3
13 changed files with 124 additions and 85 deletions

View File

@ -600,7 +600,7 @@ export class View extends proxy.ProxyObject implements definition.View {
var density = utils.layout.getDisplayDensity();
var margins = horizontal ? view.marginLeft + view.marginRight : view.marginTop + view.marginBottom;
margins = Math.round(margins * density);
margins = Math.floor(margins * density);
var resultSize = 0;
var resultMode = 0;
@ -608,7 +608,7 @@ export class View extends proxy.ProxyObject implements definition.View {
var measureLength = Math.max(0, parentLength - margins);
// Convert to pixels.
var childLength = Math.round((horizontal ? view.width : view.height) * density);
var childLength = Math.floor((horizontal ? view.width : view.height) * density);
// We want a specific size... let be it.
if (!isNaN(childLength)) {

View File

@ -236,6 +236,27 @@ export class View extends viewCommon.View {
return false;
}
public static resolveSizeAndState(size: number, specSize: number, specMode: number, childMeasuredState: number): number {
var result = size;
switch (specMode) {
case utils.layout.UNSPECIFIED:
result = size;
break;
case utils.layout.AT_MOST:
if (specSize < size) {
result = specSize | utils.layout.MEASURED_STATE_TOO_SMALL;
}
break;
case utils.layout.EXACTLY:
result = specSize;
break;
}
return result | (childMeasuredState & utils.layout.MEASURED_STATE_MASK);
}
}
export class CustomLayoutView extends View implements viewDefinition.CustomLayoutView {