@@ -9,7 +9,7 @@ import * as types from "utils/types";
9
9
import style = require( "ui/styling/style" ) ;
10
10
import enums = require( "ui/enums" ) ;
11
11
import background = require( "ui/styling/background" ) ;
12
- import { CommonLayoutParams , Thickness } from "ui/styling/style" ;
12
+ import { CommonLayoutParams } from "ui/styling/style" ;
13
13
import { device } from "platform" ;
14
14
15
15
global . moduleMerge ( viewCommon , exports ) ;
@@ -254,6 +254,12 @@ export class View extends viewCommon.View {
254
254
}
255
255
256
256
// copy all the locally cached values to the native android widget
257
+ // Initialize padding default values.
258
+ // TODO: remove this code.
259
+ let padding = this . style . paddingLeft ;
260
+ padding = this . style . paddingTop ;
261
+ padding = this . style . paddingRight ;
262
+ padding = this . style . paddingBottom ;
257
263
this . _syncNativeProperties ( ) ;
258
264
trace . notifyEvent ( this , "_onContextChanged" ) ;
259
265
}
@@ -650,23 +656,64 @@ export class ViewStyler implements style.Styler {
650
656
ViewStyler . setNativeLayoutParamsProperty ( view , style . nativeLayoutParamsProperty . defaultValue )
651
657
}
652
658
653
- private static setPaddingProperty ( view : View , newValue : Thickness ) {
659
+ private static getNativePaddingLeft ( view : View ) : number {
654
660
let density = utils . layout . getDisplayDensity ( ) ;
655
- let style = view . style ;
656
- let left = Math . round ( ( style . paddingLeft + view . borderWidth ) * density ) ;
657
- let top = Math . round ( ( style . paddingTop + view . borderWidth ) * density ) ;
658
- let right = Math . round ( ( style . paddingRight + view . borderWidth ) * density ) ;
659
- let bottom = Math . round ( ( style . paddingBottom + view . borderWidth ) * density ) ;
660
- ( < android . view . View > view . _nativeView ) . setPadding ( left , top , right , bottom ) ;
661
+ return view . _nativeView . getPaddingLeft ( ) / density ;
661
662
}
662
663
663
- private static resetPaddingProperty ( view : View , nativeValue : Thickness ) {
664
- var density = utils . layout . getDisplayDensity ( ) ;
665
- var left = Math . round ( ( nativeValue . left + view . borderWidth ) * density ) ;
666
- var top = Math . round ( ( nativeValue . top + view . borderWidth ) * density ) ;
667
- var right = Math . round ( ( nativeValue . right + view . borderWidth ) * density ) ;
668
- var bottom = Math . round ( ( nativeValue . bottom + view . borderWidth ) * density ) ;
669
- ( < android . view . View > view . _nativeView ) . setPadding ( left , top , right , bottom ) ;
664
+ private static getNativePaddingTop ( view : View ) : number {
665
+ let density = utils . layout . getDisplayDensity ( ) ;
666
+ return view . _nativeView . getPaddingTop ( ) / density ;
667
+ }
668
+
669
+ private static getNativePaddingRight ( view : View ) : number {
670
+ let density = utils . layout . getDisplayDensity ( ) ;
671
+ return view . _nativeView . getPaddingRight ( ) / density ;
672
+ }
673
+
674
+ private static getNativePaddingBottom ( view : View ) : number {
675
+ let density = utils . layout . getDisplayDensity ( ) ;
676
+ return view . _nativeView . getPaddingBottom ( ) / density ;
677
+ }
678
+
679
+ private static setNativePaddingLeft ( view : View , value : number ) : void {
680
+ let nativeView = view . _nativeView ;
681
+ let density = utils . layout . getDisplayDensity ( ) ;
682
+ let left = ( value + view . borderWidth ) * density ;
683
+ let top = nativeView . getPaddingTop ( ) ;
684
+ let right = nativeView . getPaddingRight ( ) ;
685
+ let bottom = nativeView . getPaddingBottom ( ) ;
686
+ nativeView . setPadding ( left , top , right , bottom ) ;
687
+ }
688
+
689
+ private static setNativePaddingTop ( view : View , value : number ) : void {
690
+ let nativeView = view . _nativeView ;
691
+ let density = utils . layout . getDisplayDensity ( ) ;
692
+ let left = nativeView . getPaddingLeft ( ) ;
693
+ let top = ( value + view . borderWidth ) * density ;
694
+ let right = nativeView . getPaddingRight ( ) ;
695
+ let bottom = nativeView . getPaddingBottom ( ) ;
696
+ nativeView . setPadding ( left , top , right , bottom ) ;
697
+ }
698
+
699
+ private static setNativePaddingRight ( view : View , value : number ) : void {
700
+ let nativeView = view . _nativeView ;
701
+ let density = utils . layout . getDisplayDensity ( ) ;
702
+ let left = nativeView . getPaddingLeft ( ) ;
703
+ let top = nativeView . getPaddingTop ( ) ;
704
+ let right = ( value + view . borderWidth ) * density ;
705
+ let bottom = nativeView . getPaddingBottom ( ) ;
706
+ nativeView . setPadding ( left , top , right , bottom ) ;
707
+ }
708
+
709
+ private static setNativePaddingBottom ( view : View , value : number ) : void {
710
+ let nativeView = view . _nativeView ;
711
+ let density = utils . layout . getDisplayDensity ( ) ;
712
+ let left = nativeView . getPaddingLeft ( ) ;
713
+ let top = nativeView . getPaddingTop ( ) ;
714
+ let right = nativeView . getPaddingRight ( ) ;
715
+ let bottom = ( value + view . borderWidth ) * density ;
716
+ nativeView . setPadding ( left , top , right , bottom ) ;
670
717
}
671
718
672
719
// Rotate
@@ -764,17 +811,32 @@ export class ViewStyler implements style.Styler {
764
811
ViewStyler . setNativeLayoutParamsProperty ,
765
812
ViewStyler . resetNativeLayoutParamsProperty ) ) ;
766
813
767
- style . registerHandler ( style . nativePaddingsProperty , new style . StylePropertyChangedHandler (
768
- ViewStyler . setPaddingProperty ,
769
- ViewStyler . resetPaddingProperty ) , "TextBase" ) ;
770
-
771
- style . registerHandler ( style . nativePaddingsProperty , new style . StylePropertyChangedHandler (
772
- ViewStyler . setPaddingProperty ,
773
- ViewStyler . resetPaddingProperty ) , "Button" ) ;
774
-
775
- style . registerHandler ( style . nativePaddingsProperty , new style . StylePropertyChangedHandler (
776
- ViewStyler . setPaddingProperty ,
777
- ViewStyler . resetPaddingProperty ) , "LayoutBase" ) ;
814
+ style . registerHandler ( style . paddingLeftProperty ,
815
+ new style . StylePropertyChangedHandler ( ViewStyler . setNativePaddingLeft , ViewStyler . setNativePaddingLeft , ViewStyler . getNativePaddingLeft ) , "TextBase" ) ;
816
+ style . registerHandler ( style . paddingTopProperty ,
817
+ new style . StylePropertyChangedHandler ( ViewStyler . setNativePaddingTop , ViewStyler . setNativePaddingTop , ViewStyler . getNativePaddingTop ) , "TextBase" ) ;
818
+ style . registerHandler ( style . paddingRightProperty ,
819
+ new style . StylePropertyChangedHandler ( ViewStyler . setNativePaddingRight , ViewStyler . setNativePaddingRight , ViewStyler . getNativePaddingRight ) , "TextBase" ) ;
820
+ style . registerHandler ( style . paddingBottomProperty ,
821
+ new style . StylePropertyChangedHandler ( ViewStyler . setNativePaddingBottom , ViewStyler . setNativePaddingBottom , ViewStyler . getNativePaddingBottom ) , "TextBase" ) ;
822
+
823
+ style . registerHandler ( style . paddingLeftProperty ,
824
+ new style . StylePropertyChangedHandler ( ViewStyler . setNativePaddingLeft , ViewStyler . setNativePaddingLeft , ViewStyler . getNativePaddingLeft ) , "Button" ) ;
825
+ style . registerHandler ( style . paddingTopProperty ,
826
+ new style . StylePropertyChangedHandler ( ViewStyler . setNativePaddingTop , ViewStyler . setNativePaddingTop , ViewStyler . getNativePaddingTop ) , "Button" ) ;
827
+ style . registerHandler ( style . paddingRightProperty ,
828
+ new style . StylePropertyChangedHandler ( ViewStyler . setNativePaddingRight , ViewStyler . setNativePaddingRight , ViewStyler . getNativePaddingRight ) , "Button" ) ;
829
+ style . registerHandler ( style . paddingBottomProperty ,
830
+ new style . StylePropertyChangedHandler ( ViewStyler . setNativePaddingBottom , ViewStyler . setNativePaddingBottom , ViewStyler . getNativePaddingBottom ) , "Button" ) ;
831
+
832
+ style . registerHandler ( style . paddingLeftProperty ,
833
+ new style . StylePropertyChangedHandler ( ViewStyler . setNativePaddingLeft , ViewStyler . setNativePaddingLeft , ViewStyler . getNativePaddingLeft ) , "LayoutBase" ) ;
834
+ style . registerHandler ( style . paddingTopProperty ,
835
+ new style . StylePropertyChangedHandler ( ViewStyler . setNativePaddingTop , ViewStyler . setNativePaddingTop , ViewStyler . getNativePaddingTop ) , "LayoutBase" ) ;
836
+ style . registerHandler ( style . paddingRightProperty ,
837
+ new style . StylePropertyChangedHandler ( ViewStyler . setNativePaddingRight , ViewStyler . setNativePaddingRight , ViewStyler . getNativePaddingRight ) , "LayoutBase" ) ;
838
+ style . registerHandler ( style . paddingBottomProperty ,
839
+ new style . StylePropertyChangedHandler ( ViewStyler . setNativePaddingBottom , ViewStyler . setNativePaddingBottom , ViewStyler . getNativePaddingBottom ) , "LayoutBase" ) ;
778
840
779
841
style . registerHandler ( style . rotateProperty , new style . StylePropertyChangedHandler (
780
842
ViewStyler . setRotateProperty ,
@@ -795,7 +857,7 @@ export class ViewStyler implements style.Styler {
795
857
style . registerHandler ( style . translateYProperty , new style . StylePropertyChangedHandler (
796
858
ViewStyler . setTranslateYProperty ,
797
859
ViewStyler . resetTranslateYProperty ) ) ;
798
-
860
+
799
861
if ( parseInt ( device . sdkVersion , 10 ) >= 21 ) {
800
862
style . registerHandler ( style . zIndexProperty , new style . StylePropertyChangedHandler (
801
863
ViewStyler . setZIndexProperty ,
0 commit comments