fix safe area calculations with flat action bar

This commit is contained in:
Martin Yankov
2018-09-20 10:51:58 +03:00
parent c3ee667015
commit 2d2144f02e
3 changed files with 26 additions and 80 deletions

View File

@@ -780,12 +780,12 @@ export namespace ios {
adjustedPosition.top = fullscreenPosition.top;
}
if (inWindowRight < fullscreenPosition.right && inWindowRight >= safeAreaPosition.right) {
adjustedPosition.right = fullscreenPosition.right;
if (inWindowRight < fullscreenPosition.right && inWindowRight >= safeAreaPosition.right + fullscreenPosition.left) {
adjustedPosition.right = fullscreenPosition.right - fullscreenPosition.left;
}
if (inWindowBottom < fullscreenPosition.bottom && inWindowBottom >= safeAreaPosition.bottom) {
adjustedPosition.bottom = fullscreenPosition.bottom;
if (inWindowBottom < fullscreenPosition.bottom && inWindowBottom >= safeAreaPosition.bottom + fullscreenPosition.top) {
adjustedPosition.bottom = fullscreenPosition.bottom - fullscreenPosition.top;
}
const adjustedFrame = CGRectMake(layout.toDeviceIndependentPixels(adjustedPosition.left), layout.toDeviceIndependentPixels(adjustedPosition.top), layout.toDeviceIndependentPixels(adjustedPosition.right - adjustedPosition.left), layout.toDeviceIndependentPixels(adjustedPosition.bottom - adjustedPosition.top));

View File

@@ -311,10 +311,11 @@ export class Page extends PageBase {
View.layoutChild(this, this.actionBar, 0, 0, actionBarWidth, actionBarHeight);
const insets = this.getSafeAreaInsets();
const childLeft = left + insets.left;
const childTop = top + insets.top;
const childRight = right - insets.right;
const childBottom = bottom - insets.bottom;
const childLeft = 0 + insets.left;
const childTop = 0 + insets.top;
const childRight = right - left - insets.right;
const childBottom = bottom - top - insets.bottom;
View.layoutChild(this, this.layoutView, childLeft, childTop, childRight, childBottom);
}