mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
committed by
Hristo Hristov
parent
4f5b7aa771
commit
62fc7b305b
@@ -9,7 +9,7 @@ import * as types from "utils/types";
|
|||||||
import style = require("ui/styling/style");
|
import style = require("ui/styling/style");
|
||||||
import enums = require("ui/enums");
|
import enums = require("ui/enums");
|
||||||
import background = require("ui/styling/background");
|
import background = require("ui/styling/background");
|
||||||
import {CommonLayoutParams, Thickness} from "ui/styling/style";
|
import {CommonLayoutParams} from "ui/styling/style";
|
||||||
import {device} from "platform";
|
import {device} from "platform";
|
||||||
|
|
||||||
global.moduleMerge(viewCommon, exports);
|
global.moduleMerge(viewCommon, exports);
|
||||||
@@ -254,6 +254,12 @@ export class View extends viewCommon.View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// copy all the locally cached values to the native android widget
|
// copy all the locally cached values to the native android widget
|
||||||
|
// Initialize padding default values.
|
||||||
|
// TODO: remove this code.
|
||||||
|
let padding = this.style.paddingLeft;
|
||||||
|
padding = this.style.paddingTop;
|
||||||
|
padding = this.style.paddingRight;
|
||||||
|
padding = this.style.paddingBottom;
|
||||||
this._syncNativeProperties();
|
this._syncNativeProperties();
|
||||||
trace.notifyEvent(this, "_onContextChanged");
|
trace.notifyEvent(this, "_onContextChanged");
|
||||||
}
|
}
|
||||||
@@ -650,23 +656,64 @@ export class ViewStyler implements style.Styler {
|
|||||||
ViewStyler.setNativeLayoutParamsProperty(view, style.nativeLayoutParamsProperty.defaultValue)
|
ViewStyler.setNativeLayoutParamsProperty(view, style.nativeLayoutParamsProperty.defaultValue)
|
||||||
}
|
}
|
||||||
|
|
||||||
private static setPaddingProperty(view: View, newValue: Thickness) {
|
private static getNativePaddingLeft(view: View): number {
|
||||||
let density = utils.layout.getDisplayDensity();
|
let density = utils.layout.getDisplayDensity();
|
||||||
let style = view.style;
|
return view._nativeView.getPaddingLeft() / density;
|
||||||
let left = Math.round((style.paddingLeft + view.borderWidth) * density);
|
|
||||||
let top = Math.round((style.paddingTop + view.borderWidth) * density);
|
|
||||||
let right = Math.round((style.paddingRight + view.borderWidth) * density);
|
|
||||||
let bottom = Math.round((style.paddingBottom + view.borderWidth) * density);
|
|
||||||
(<android.view.View>view._nativeView).setPadding(left, top, right, bottom);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static resetPaddingProperty(view: View, nativeValue: Thickness) {
|
private static getNativePaddingTop(view: View): number {
|
||||||
var density = utils.layout.getDisplayDensity();
|
let density = utils.layout.getDisplayDensity();
|
||||||
var left = Math.round((nativeValue.left + view.borderWidth) * density);
|
return view._nativeView.getPaddingTop() / density;
|
||||||
var top = Math.round((nativeValue.top + view.borderWidth) * density);
|
}
|
||||||
var right = Math.round((nativeValue.right + view.borderWidth) * density);
|
|
||||||
var bottom = Math.round((nativeValue.bottom + view.borderWidth) * density);
|
private static getNativePaddingRight(view: View): number {
|
||||||
(<android.view.View>view._nativeView).setPadding(left, top, right, bottom);
|
let density = utils.layout.getDisplayDensity();
|
||||||
|
return view._nativeView.getPaddingRight() / density;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static getNativePaddingBottom(view: View): number {
|
||||||
|
let density = utils.layout.getDisplayDensity();
|
||||||
|
return view._nativeView.getPaddingBottom() / density;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static setNativePaddingLeft(view: View, value: number): void {
|
||||||
|
let nativeView = view._nativeView;
|
||||||
|
let density = utils.layout.getDisplayDensity();
|
||||||
|
let left = (value + view.borderWidth) * density;
|
||||||
|
let top = nativeView.getPaddingTop();
|
||||||
|
let right = nativeView.getPaddingRight();
|
||||||
|
let bottom = nativeView.getPaddingBottom();
|
||||||
|
nativeView.setPadding(left, top, right, bottom);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static setNativePaddingTop(view: View, value: number): void {
|
||||||
|
let nativeView = view._nativeView;
|
||||||
|
let density = utils.layout.getDisplayDensity();
|
||||||
|
let left = nativeView.getPaddingLeft();
|
||||||
|
let top = (value + view.borderWidth) * density;
|
||||||
|
let right = nativeView.getPaddingRight();
|
||||||
|
let bottom = nativeView.getPaddingBottom();
|
||||||
|
nativeView.setPadding(left, top, right, bottom);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static setNativePaddingRight(view: View, value: number): void {
|
||||||
|
let nativeView = view._nativeView;
|
||||||
|
let density = utils.layout.getDisplayDensity();
|
||||||
|
let left = nativeView.getPaddingLeft();
|
||||||
|
let top = nativeView.getPaddingTop();
|
||||||
|
let right = (value + view.borderWidth) * density;
|
||||||
|
let bottom = nativeView.getPaddingBottom();
|
||||||
|
nativeView.setPadding(left, top, right, bottom);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static setNativePaddingBottom(view: View, value: number): void {
|
||||||
|
let nativeView = view._nativeView;
|
||||||
|
let density = utils.layout.getDisplayDensity();
|
||||||
|
let left = nativeView.getPaddingLeft();
|
||||||
|
let top = nativeView.getPaddingTop();
|
||||||
|
let right = nativeView.getPaddingRight();
|
||||||
|
let bottom = (value + view.borderWidth) * density;
|
||||||
|
nativeView.setPadding(left, top, right, bottom);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Rotate
|
// Rotate
|
||||||
@@ -764,17 +811,32 @@ export class ViewStyler implements style.Styler {
|
|||||||
ViewStyler.setNativeLayoutParamsProperty,
|
ViewStyler.setNativeLayoutParamsProperty,
|
||||||
ViewStyler.resetNativeLayoutParamsProperty));
|
ViewStyler.resetNativeLayoutParamsProperty));
|
||||||
|
|
||||||
style.registerHandler(style.nativePaddingsProperty, new style.StylePropertyChangedHandler(
|
style.registerHandler(style.paddingLeftProperty,
|
||||||
ViewStyler.setPaddingProperty,
|
new style.StylePropertyChangedHandler(ViewStyler.setNativePaddingLeft, ViewStyler.setNativePaddingLeft, ViewStyler.getNativePaddingLeft), "TextBase");
|
||||||
ViewStyler.resetPaddingProperty), "TextBase");
|
style.registerHandler(style.paddingTopProperty,
|
||||||
|
new style.StylePropertyChangedHandler(ViewStyler.setNativePaddingTop, ViewStyler.setNativePaddingTop, ViewStyler.getNativePaddingTop), "TextBase");
|
||||||
|
style.registerHandler(style.paddingRightProperty,
|
||||||
|
new style.StylePropertyChangedHandler(ViewStyler.setNativePaddingRight, ViewStyler.setNativePaddingRight, ViewStyler.getNativePaddingRight), "TextBase");
|
||||||
|
style.registerHandler(style.paddingBottomProperty,
|
||||||
|
new style.StylePropertyChangedHandler(ViewStyler.setNativePaddingBottom, ViewStyler.setNativePaddingBottom, ViewStyler.getNativePaddingBottom), "TextBase");
|
||||||
|
|
||||||
style.registerHandler(style.nativePaddingsProperty, new style.StylePropertyChangedHandler(
|
style.registerHandler(style.paddingLeftProperty,
|
||||||
ViewStyler.setPaddingProperty,
|
new style.StylePropertyChangedHandler(ViewStyler.setNativePaddingLeft, ViewStyler.setNativePaddingLeft, ViewStyler.getNativePaddingLeft), "Button");
|
||||||
ViewStyler.resetPaddingProperty), "Button");
|
style.registerHandler(style.paddingTopProperty,
|
||||||
|
new style.StylePropertyChangedHandler(ViewStyler.setNativePaddingTop, ViewStyler.setNativePaddingTop, ViewStyler.getNativePaddingTop), "Button");
|
||||||
|
style.registerHandler(style.paddingRightProperty,
|
||||||
|
new style.StylePropertyChangedHandler(ViewStyler.setNativePaddingRight, ViewStyler.setNativePaddingRight, ViewStyler.getNativePaddingRight), "Button");
|
||||||
|
style.registerHandler(style.paddingBottomProperty,
|
||||||
|
new style.StylePropertyChangedHandler(ViewStyler.setNativePaddingBottom, ViewStyler.setNativePaddingBottom, ViewStyler.getNativePaddingBottom), "Button");
|
||||||
|
|
||||||
style.registerHandler(style.nativePaddingsProperty, new style.StylePropertyChangedHandler(
|
style.registerHandler(style.paddingLeftProperty,
|
||||||
ViewStyler.setPaddingProperty,
|
new style.StylePropertyChangedHandler(ViewStyler.setNativePaddingLeft, ViewStyler.setNativePaddingLeft, ViewStyler.getNativePaddingLeft), "LayoutBase");
|
||||||
ViewStyler.resetPaddingProperty), "LayoutBase");
|
style.registerHandler(style.paddingTopProperty,
|
||||||
|
new style.StylePropertyChangedHandler(ViewStyler.setNativePaddingTop, ViewStyler.setNativePaddingTop, ViewStyler.getNativePaddingTop), "LayoutBase");
|
||||||
|
style.registerHandler(style.paddingRightProperty,
|
||||||
|
new style.StylePropertyChangedHandler(ViewStyler.setNativePaddingRight, ViewStyler.setNativePaddingRight, ViewStyler.getNativePaddingRight), "LayoutBase");
|
||||||
|
style.registerHandler(style.paddingBottomProperty,
|
||||||
|
new style.StylePropertyChangedHandler(ViewStyler.setNativePaddingBottom, ViewStyler.setNativePaddingBottom, ViewStyler.getNativePaddingBottom), "LayoutBase");
|
||||||
|
|
||||||
style.registerHandler(style.rotateProperty, new style.StylePropertyChangedHandler(
|
style.registerHandler(style.rotateProperty, new style.StylePropertyChangedHandler(
|
||||||
ViewStyler.setRotateProperty,
|
ViewStyler.setRotateProperty,
|
||||||
|
|||||||
@@ -1224,7 +1224,7 @@ export var nativePaddingsProperty = new styleProperty.Property("paddingNative",
|
|||||||
new PropertyMetadata(undefined, null, null, null, thicknessComparer));
|
new PropertyMetadata(undefined, null, null, null, thicknessComparer));
|
||||||
|
|
||||||
// TODO: separate into .android/.ios files so that there is no need for such checks
|
// TODO: separate into .android/.ios files so that there is no need for such checks
|
||||||
var defaultPadding = platform.device.os === platform.platformNames.android ? undefined : 0;
|
var defaultPadding = platform.isAndroid ? undefined : 0;
|
||||||
|
|
||||||
export var paddingLeftProperty = new styleProperty.Property("paddingLeft", "padding-left",
|
export var paddingLeftProperty = new styleProperty.Property("paddingLeft", "padding-left",
|
||||||
new PropertyMetadata(defaultPadding, AffectsLayout, onPaddingValueChanged, isNonNegativeFiniteNumber), converters.numberConverter);
|
new PropertyMetadata(defaultPadding, AffectsLayout, onPaddingValueChanged, isNonNegativeFiniteNumber), converters.numberConverter);
|
||||||
|
|||||||
Reference in New Issue
Block a user