Files
NativeScript/ui/layouts/stack-layout/stack-layout-common.ts
Hristo Hristov 68cdff85bd GridLayout now calls virtual methods when rows/columns are set through XML.
Added test.
Improved code readability.
2016-01-21 13:55:32 +02:00

25 lines
1.2 KiB
TypeScript

import definition = require("ui/layouts/stack-layout");
import platform = require("platform");
import {LayoutBase} from "ui/layouts/layout-base";
import {View} from "ui/core/view";
import {Orientation} from "ui/enums";
import {PropertyMetadata} from "ui/core/proxy";
import {Property, PropertyMetadataSettings} from "ui/core/dependency-observable";
// on Android we explicitly set propertySettings to None because android will invalidate its layout (skip unnecessary native call).
var AffectsLayout = platform.device.os === platform.platformNames.android ? PropertyMetadataSettings.None : PropertyMetadataSettings.AffectsLayout;
function validateOrientation(value: any): boolean {
return value === Orientation.vertical || value === Orientation.horizontal;
}
export class StackLayout extends LayoutBase implements definition.StackLayout {
public static orientationProperty = new Property("orientation", "StackLayout", new PropertyMetadata(Orientation.vertical, AffectsLayout, undefined, validateOrientation));
get orientation(): string {
return this._getValue(StackLayout.orientationProperty);
}
set orientation(value: string) {
this._setValue(StackLayout.orientationProperty, value);
}
}