Skip to content

Commit

Permalink
fix(android): set page listener in initNativeView
Browse files Browse the repository at this point in the history
  • Loading branch information
farfromrefug committed Apr 5, 2022
1 parent 925260d commit 6e9273f
Showing 1 changed file with 16 additions and 6 deletions.
22 changes: 16 additions & 6 deletions src/ui-pager/index.android.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ export class Pager extends PagerBase {
private marginTransformer: any;
private _transformers: any[];
private _selectedIndexBeforeLoad = 0;
private _pager;
private _pager: androidx.viewpager2.widget.ViewPager2;
private _indicatorView;

constructor() {
Expand Down Expand Up @@ -109,9 +109,6 @@ export class Pager extends PagerBase {
this._pager.setOrientation(androidx.viewpager2.widget.ViewPager2.ORIENTATION_HORIZONTAL);
}

initPagerChangeCallback();
this._pageListener = new PageChangeCallback(new WeakRef(this));

initPagerRecyclerAdapter();
this._pagerAdapter = new PagerRecyclerAdapter(new WeakRef(this));
this.compositeTransformer = new androidx.viewpager2.widget.CompositePageTransformer();
Expand Down Expand Up @@ -140,6 +137,8 @@ export class Pager extends PagerBase {
this._oldDisableAnimation = this.disableAnimation;
// Disable animation to set currentItem w/o animation
this.disableAnimation = true;
initPagerChangeCallback();
this._pageListener = new PageChangeCallback(new WeakRef(this));
this.pager.registerOnPageChangeCallback(this._pageListener);
this.pager.setAdapter(this._pagerAdapter);
if (this._androidViewId < 0) {
Expand Down Expand Up @@ -276,6 +275,15 @@ export class Pager extends PagerBase {
this.indicatorView.setCount(this._childrenCount);
}
if (this.pagerAdapter) {
// com.nativescript.pager.Utils.updateCollection(
// JSON.stringify({
// action: args.action,
// index: args.index,
// addedCount: args.addedCount,
// removedCount: args.removed ? args.removed.length : 0
// }),
// this.pagerAdapter
// );
switch (args.action) {
case ChangeType.Add:
this.pagerAdapter.notifyItemRangeInserted(args.index, args.addedCount);
Expand Down Expand Up @@ -307,6 +315,8 @@ export class Pager extends PagerBase {
this._realizedItems.clear();
this._realizedTemplates.clear();
this._pageListener = null;
// setAdapter(null) will destroy views
this.pager.setAdapter(null);
this._pagerAdapter = null;
this._transformers = [];
if (this._observableArrayInstance) {
Expand Down Expand Up @@ -1049,7 +1059,7 @@ function initZoomOutPageTransformer() {

@NativeClass
@Interfaces([androidx.viewpager2.widget.ViewPager2.PageTransformer])
class ZoomOutPageTransformerImpl extends java.lang.Object implements androidx.viewpager2.widget.ViewPager2.PageTransformer {
class ZoomOutPageTransformerImpl extends androidx.viewpager2.widget.ViewPager2.PageTransformer {
owner: WeakRef<Pager>;

constructor() {
Expand Down Expand Up @@ -1082,7 +1092,7 @@ function initZoomInPageTransformer() {

@NativeClass
@Interfaces([androidx.viewpager2.widget.ViewPager2.PageTransformer])
class ZoomInPageTransformerImpl extends java.lang.Object implements androidx.viewpager2.widget.ViewPager2.PageTransformer {
class ZoomInPageTransformerImpl extends androidx.viewpager2.widget.ViewPager2.PageTransformer {
owner: WeakRef<Pager>;

constructor() {
Expand Down

0 comments on commit 6e9273f

Please sign in to comment.