@@ -49,9 +49,9 @@ export class Pager extends PagerBase {
49
49
public _realizedTemplates = new Map < string , Map < android . view . View , View > > ( ) ;
50
50
lastEvent = 0 ;
51
51
private _lastSpacing = 0 ;
52
- private _lastPeaking = 0 ;
52
+ _lastPeaking = 0 ;
53
53
private compositeTransformer : androidx . viewpager2 . widget . CompositePageTransformer ;
54
- private marginTransformer : androidx . viewpager2 . widget . MarginPageTransformer ;
54
+ // private marginTransformer: androidx.viewpager2.widget.MarginPageTransformer;
55
55
private peakingTransformer : com . nativescript . pager . PeakingTransformer ;
56
56
private _transformers : androidx . viewpager2 . widget . ViewPager2 . PageTransformer [ ] ;
57
57
@@ -170,18 +170,12 @@ export class Pager extends PagerBase {
170
170
const size = this . convertToSize ( value ) ;
171
171
const newSpacing = size !== this . _lastSpacing ;
172
172
if ( newSpacing ) {
173
- if ( this . marginTransformer ) {
174
- this . compositeTransformer . removeTransformer ( this . marginTransformer ) ;
175
- this . marginTransformer = null ;
176
- }
177
- if ( size !== 0 ) {
178
- this . marginTransformer = new androidx . viewpager2 . widget . MarginPageTransformer ( size ) ;
179
- this . compositeTransformer . addTransformer ( this . marginTransformer ) ;
180
- if ( this . peakingTransformer ) {
181
- this . compositeTransformer . removeTransformer ( this . peakingTransformer ) ;
182
- this . peakingTransformer = null ;
183
- }
173
+ if ( ! this . peakingTransformer ) {
174
+ this . peakingTransformer = new com . nativescript . pager . PeakingTransformer ( ) ;
175
+ this . compositeTransformer . addTransformer ( this . peakingTransformer ) ;
184
176
}
177
+ this . peakingTransformer . pageOffset = this . _lastPeaking ;
178
+ this . peakingTransformer . pageMargin = size ;
185
179
this . _lastSpacing = size ;
186
180
this . refresh ( ) ;
187
181
}
@@ -191,17 +185,12 @@ export class Pager extends PagerBase {
191
185
const size = this . convertToSize ( value ) ;
192
186
const newPeaking = size !== this . _lastPeaking ;
193
187
if ( newPeaking ) {
194
- const nativeView = this . nativeViewProtected ;
195
- const left = this . orientation === 'horizontal' ? size : 0 ;
196
- const top = this . orientation === 'horizontal' ? 0 : size ;
197
- const enabled = left !== 0 || top !== 0 ;
198
- nativeView . setPadding ( left , top , left , top ) ;
199
- nativeView . setClipChildren ( ! enabled ) ;
200
- nativeView . setClipToPadding ( ! enabled ) ;
201
- if ( ! this . peakingTransformer && ! this . marginTransformer ) {
188
+ if ( ! this . peakingTransformer ) {
202
189
this . peakingTransformer = new com . nativescript . pager . PeakingTransformer ( ) ;
203
190
this . compositeTransformer . addTransformer ( this . peakingTransformer ) ;
204
191
}
192
+ this . peakingTransformer . pageOffset = size ;
193
+ this . peakingTransformer . pageMargin = this . _lastSpacing ;
205
194
this . _lastPeaking = size ;
206
195
this . refresh ( ) ;
207
196
}
@@ -841,6 +830,9 @@ function initPagerRecyclerAdapter() {
841
830
( holder . view as ContentView ) . content = args . view ;
842
831
}
843
832
owner . _prepareItem ( holder . view , index ) ;
833
+
834
+ // TODO: find a way to add to existing margin
835
+ view . marginLeft = view . marginRight = Utils . layout . toDeviceIndependentPixels ( owner . _lastPeaking ) ;
844
836
}
845
837
}
846
838
@@ -1025,7 +1017,10 @@ function initPagerViewHolder() {
1025
1017
1026
1018
@NativeClass
1027
1019
class PagerViewHolderImpl extends androidx . recyclerview . widget . RecyclerView . ViewHolder {
1028
- constructor ( private owner : View , private pager : WeakRef < Pager > ) {
1020
+ constructor (
1021
+ private owner : View ,
1022
+ private pager : WeakRef < Pager >
1023
+ ) {
1029
1024
super ( owner . nativeViewProtected ) ;
1030
1025
return global . __native ( this ) ;
1031
1026
}
0 commit comments