mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-23 09:01:10 +08:00
67 lines
2.1 KiB
TypeScript
67 lines
2.1 KiB
TypeScript
import { DockLayoutBase, View, dockProperty, stretchLastChildProperty } from "./dock-layout-common";
|
|
|
|
export * from "./dock-layout-common";
|
|
|
|
// define native getter and setter for topProperty.
|
|
let dockDescriptor: TypedPropertyDescriptor<"left" | "top" | "right" | "bottom"> = {
|
|
enumerable: true,
|
|
configurable: true,
|
|
get: () => "left",
|
|
set: function (this: View, value: "left" | "top" | "right" | "bottom") {
|
|
const nativeView: android.view.View = this._nativeView;
|
|
const lp = nativeView.getLayoutParams() || new org.nativescript.widgets.CommonLayoutParams();
|
|
if (lp instanceof org.nativescript.widgets.CommonLayoutParams) {
|
|
switch (value) {
|
|
case "left":
|
|
lp.dock = org.nativescript.widgets.Dock.left;
|
|
break;
|
|
|
|
case "top":
|
|
lp.dock = org.nativescript.widgets.Dock.top;
|
|
break;
|
|
|
|
case "right":
|
|
lp.dock = org.nativescript.widgets.Dock.right;
|
|
break;
|
|
|
|
case "bottom":
|
|
lp.dock = org.nativescript.widgets.Dock.bottom;
|
|
break;
|
|
|
|
default:
|
|
throw new Error(`Invalid value for dock property: ${value}`);
|
|
}
|
|
|
|
nativeView.setLayoutParams(lp);
|
|
}
|
|
}
|
|
}
|
|
|
|
// register native properties on View type.
|
|
Object.defineProperties(View.prototype, {
|
|
[dockProperty.native]: dockDescriptor
|
|
});
|
|
|
|
export class DockLayout extends DockLayoutBase {
|
|
|
|
private _layout: org.nativescript.widgets.DockLayout;
|
|
|
|
get android(): org.nativescript.widgets.DockLayout {
|
|
return this._layout;
|
|
}
|
|
|
|
get _nativeView(): org.nativescript.widgets.DockLayout {
|
|
return this._layout;
|
|
}
|
|
|
|
public _createNativeView() {
|
|
this._layout = new org.nativescript.widgets.DockLayout(this._context);
|
|
}
|
|
|
|
get [stretchLastChildProperty.native](): boolean {
|
|
return false;
|
|
}
|
|
set [stretchLastChildProperty.native](value: boolean) {
|
|
this._layout.setStretchLastChild(value);
|
|
}
|
|
} |