@nativescript-community/ui-collectionview 4.0.65 → 4.0.66

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.android.js CHANGED
@@ -1,3 +1,4 @@
1
+ /* eslint-disable no-redeclare */
1
2
  import { ChangeType, ContentView, CoreTypes, Property, ProxyViewContainer, Trace, Utils, View, ViewBase, booleanConverter, paddingBottomProperty, paddingLeftProperty, paddingRightProperty, paddingTopProperty, profile } from '@nativescript/core';
2
3
  import { reorderLongPressEnabledProperty, reorderingEnabledProperty, reverseLayoutProperty, scrollBarIndicatorVisibleProperty } from '.';
3
4
  import { CLog, CLogTypes, CollectionViewBase, ListViewViewTypes, isScrollEnabledProperty, orientationProperty } from './index-common';
@@ -90,6 +91,8 @@ export class CollectionView extends CollectionViewBase {
90
91
  this.templateStringTypeNumber = new Map();
91
92
  this._currentNativeItemType = 0;
92
93
  this.currentSpanCount = 1;
94
+ // used to store viewHolder and thus their corresponding Views
95
+ // used to "destroy" cells when possible
93
96
  this._viewHolders = new Set();
94
97
  this._scrollOrLoadMoreChangeCount = 0;
95
98
  this.scrolling = false;
@@ -101,10 +104,20 @@ export class CollectionView extends CollectionViewBase {
101
104
  this._layedOut = false;
102
105
  }
103
106
  createNativeView() {
107
+ // storing the class in a property for reuse in the future cause a materializing which is pretty slow!
104
108
  if (!CollectionViewRecyclerView) {
105
109
  CollectionViewRecyclerView = com.nativescript.collectionview.RecyclerView;
106
110
  }
107
111
  const recyclerView = CollectionViewRecyclerView.createRecyclerView(this._context);
112
+ // const expMgr = new RecyclerViewExpandableItemManager(null);
113
+ // adapter.setDisplayHeadersAtStartUp(true).setStickyHeaders(true); //Make headers sticky
114
+ // Endless scroll with 1 item threshold
115
+ // .setLoadingMoreAtStartUp(true)
116
+ // .setEndlessScrollListener(this, new ProgressItem())
117
+ // .setEndlessScrollThreshold(1); //Default=1
118
+ // const fastScroller = new com.l4digital.fastscroll.FastScroller(this._context);
119
+ // fastScroller.setSectionIndexer(adapter);
120
+ // fastScroller.attachRecyclerView(recyclerView);
108
121
  return recyclerView;
109
122
  }
110
123
  initNativeView() {
@@ -134,6 +147,7 @@ export class CollectionView extends CollectionViewBase {
134
147
  view.callUnloaded();
135
148
  }
136
149
  view._isAddedToNativeVisualTree = false;
150
+ //@ts-ignore
137
151
  view.parent = null;
138
152
  view._tearDownUI();
139
153
  }
@@ -158,13 +172,22 @@ export class CollectionView extends CollectionViewBase {
158
172
  }));
159
173
  nativeView.setRecyclerListener(recyclerListener);
160
174
  nativeView.setRecycledViewPool(this.recycledViewPool);
175
+ // nativeView.owner = new WeakRef(this);
176
+ // nativeView.sizeChangedListener = new com.nativescript.collectionview.SizeChangedListener({
177
+ // onSizeChanged: (w, h, oldW, oldH) => this.onSizeChanged(w, h),
178
+ // });
179
+ // const orientation = this._getLayoutManagarOrientation();
180
+ // initGridLayoutManager();
161
181
  let layoutManager;
162
182
  if (CollectionViewBase.layoutStyles[this.layoutStyle]) {
163
183
  layoutManager = CollectionViewBase.layoutStyles[this.layoutStyle].createLayout(this);
164
184
  }
165
185
  else {
166
186
  layoutManager = new com.nativescript.collectionview.PreCachingGridLayoutManager(this._context, 1);
187
+ // layoutManager = new PreCachingGridLayoutManager(this._context, 1);
188
+ // (layoutManager as any).owner = new WeakRef(this);
167
189
  }
190
+ // this.spanSize
168
191
  nativeView.setLayoutManager(layoutManager);
169
192
  nativeView.layoutManager = layoutManager;
170
193
  nativeView.sizeChangedListener = new com.nativescript.collectionview.SizeChangedListener({
@@ -173,11 +196,19 @@ export class CollectionView extends CollectionViewBase {
173
196
  });
174
197
  this.spanSize = this._getSpanSize;
175
198
  const animator = new com.h6ah4i.android.widget.advrecyclerview.animator.RefactoredDefaultItemAnimator();
199
+ // Change animations are enabled by default since support-v7-recyclerview v22.
200
+ // Need to disable them when using animation indicator.
176
201
  animator.setSupportsChangeAnimations(false);
177
202
  nativeView.setItemAnimator(animator);
178
203
  this.refresh();
179
204
  }
180
205
  disposeNativeView() {
206
+ // clear the cache
207
+ // this.eachChildView((view) => {
208
+ // view.parent._removeView(view);
209
+ // return true;
210
+ // });
211
+ // this._realizedItems.clear();
181
212
  const nativeView = this.nativeViewProtected;
182
213
  nativeView.setRecyclerListener(null);
183
214
  nativeView.setRecycledViewPool(null);
@@ -207,6 +238,7 @@ export class CollectionView extends CollectionViewBase {
207
238
  getViewForItemAtIndex(index) {
208
239
  return this.enumerateViewHolders((v) => (v.getAdapterPosition() === index ? v.view : undefined));
209
240
  }
241
+ //@ts-ignore
210
242
  set spanSize(inter) {
211
243
  if (!(typeof inter === 'function')) {
212
244
  return;
@@ -314,12 +346,14 @@ export class CollectionView extends CollectionViewBase {
314
346
  }
315
347
  onScrollStateChanged(view, newState) {
316
348
  if (this.scrolling && newState === 0) {
349
+ // SCROLL_STATE_IDLE
317
350
  this.scrolling = false;
318
351
  if (this.hasListeners(CollectionViewBase.scrollEndEvent)) {
319
352
  this.notify(this.computeScrollEventData(view, CollectionViewBase.scrollEndEvent));
320
353
  }
321
354
  }
322
355
  else if (!this.scrolling && newState === 1) {
356
+ //SCROLL_STATE_DRAGGING
323
357
  this.needsScrollStartEvent = true;
324
358
  this.scrolling = true;
325
359
  }
@@ -338,6 +372,7 @@ export class CollectionView extends CollectionViewBase {
338
372
  this.detachScrollListener();
339
373
  }
340
374
  }
375
+ //@ts-ignore
341
376
  get android() {
342
377
  return this.nativeView;
343
378
  }
@@ -434,6 +469,7 @@ export class CollectionView extends CollectionViewBase {
434
469
  const layoutManager = this.layoutManager;
435
470
  if (layoutManager && layoutManager.setReverseLayout) {
436
471
  layoutManager.setReverseLayout(value);
472
+ // layoutManager['setStackFromEnd'](value);
437
473
  }
438
474
  }
439
475
  [nestedScrollingEnabledProperty.setNative](value) {
@@ -477,6 +513,7 @@ export class CollectionView extends CollectionViewBase {
477
513
  }
478
514
  startDragging(index) {
479
515
  if (this.reorderEnabled && this._itemTouchHelper) {
516
+ // let viewHolder: CollectionViewCellHolder;
480
517
  const viewHolder = this.enumerateViewHolders((v) => (v.getAdapterPosition() === index ? v : undefined));
481
518
  if (viewHolder) {
482
519
  this.startViewHolderDragging(index, viewHolder);
@@ -484,6 +521,8 @@ export class CollectionView extends CollectionViewBase {
484
521
  }
485
522
  }
486
523
  startViewHolderDragging(index, viewHolder) {
524
+ // isDragging is to prevent longPress from triggering and starting a new drag
525
+ // when triggered manually
487
526
  if (!this.isDragging && this.shouldMoveItemAtIndex(index)) {
488
527
  this.isDragging = true;
489
528
  this._itemTouchHelper.startDrag(viewHolder);
@@ -502,7 +541,10 @@ export class CollectionView extends CollectionViewBase {
502
541
  }
503
542
  _reorderItemInSource(oldPosition, newPosition) {
504
543
  const adapter = this._listViewAdapter;
544
+ // 3. Tell adapter to render the model update.
505
545
  adapter.notifyItemMoved(oldPosition, newPosition);
546
+ // on android _reorderItemInSource is call on every "move" and needs to update the adapter/items
547
+ // we will call events only at then end
506
548
  super._reorderItemInSource(oldPosition, newPosition, false);
507
549
  }
508
550
  [reorderLongPressEnabledProperty.setNative](value) {
@@ -550,11 +592,11 @@ export class CollectionView extends CollectionViewBase {
550
592
  this.refresh();
551
593
  }
552
594
  onItemTemplateChanged(oldValue, newValue) {
553
- super.onItemTemplateChanged(oldValue, newValue);
595
+ super.onItemTemplateChanged(oldValue, newValue); // TODO: update current template with the new one
554
596
  this.refresh();
555
597
  }
556
598
  onItemTemplatesChanged(oldValue, newValue) {
557
- super.onItemTemplatesChanged(oldValue, newValue);
599
+ super.onItemTemplatesChanged(oldValue, newValue); // TODO: update current template with the new one
558
600
  this.refresh();
559
601
  }
560
602
  setOnLayoutChangeListener() {
@@ -609,6 +651,8 @@ export class CollectionView extends CollectionViewBase {
609
651
  const p = CollectionViewBase.plugins[k];
610
652
  p.onLayout && p.onLayout(this, left, top, right, bottom);
611
653
  });
654
+ // there is no need to call refresh if it was triggered before with same size.
655
+ // this refresh is just to handle size change
612
656
  const layoutKey = this._innerWidth + '_' + this._innerHeight;
613
657
  if (this._isDataDirty || (this._lastLayoutKey && this._lastLayoutKey !== layoutKey)) {
614
658
  setTimeout(() => this.refresh(), 0);
@@ -631,6 +675,7 @@ export class CollectionView extends CollectionViewBase {
631
675
  if (event.addedCount > 0) {
632
676
  this._listViewAdapter.notifyItemRangeInserted(event.index, event.addedCount);
633
677
  }
678
+ // Reload the items to avoid duplicate Load on Demand indicators:
634
679
  return;
635
680
  }
636
681
  case ChangeType.Update: {
@@ -643,6 +688,7 @@ export class CollectionView extends CollectionViewBase {
643
688
  const added = event.addedCount;
644
689
  const removed = (event.removed && event.removed.length) || 0;
645
690
  if (added > 0 && added === removed) {
691
+ // notifyItemRangeChanged wont create a fade effect
646
692
  if (!this.animateItemUpdate) {
647
693
  this._listViewAdapter.notifyItemRangeChanged(event.index, added);
648
694
  }
@@ -681,6 +727,7 @@ export class CollectionView extends CollectionViewBase {
681
727
  this._listViewAdapter.notifyDataSetChanged();
682
728
  }
683
729
  eachChild(callback) {
730
+ // used for css updates (like theme change)
684
731
  this.enumerateViewHolders((v) => {
685
732
  const view = v.view;
686
733
  if (view) {
@@ -688,6 +735,7 @@ export class CollectionView extends CollectionViewBase {
688
735
  callback(view);
689
736
  }
690
737
  else {
738
+ // in some cases (like item is unloaded from another place (like angular) view.parent becomes undefined)
691
739
  if (view.parent) {
692
740
  callback(view.parent);
693
741
  }
@@ -747,6 +795,7 @@ export class CollectionView extends CollectionViewBase {
747
795
  };
748
796
  this.notify(args);
749
797
  }
798
+ //@ts-ignore
750
799
  get scrollOffset() {
751
800
  const view = this.nativeViewProtected;
752
801
  if (!view) {
@@ -787,6 +836,7 @@ export class CollectionView extends CollectionViewBase {
787
836
  bottom: nativeView.getPaddingBottom(),
788
837
  left: nativeView.getPaddingLeft()
789
838
  };
839
+ // tslint:disable-next-line:prefer-object-spread
790
840
  const newValue = Object.assign(padding, newPadding);
791
841
  nativeView.setClipToPadding(false);
792
842
  nativeView.setPadding(newValue.left, newValue.top, newValue.right, newValue.bottom);
@@ -802,6 +852,8 @@ export class CollectionView extends CollectionViewBase {
802
852
  onBindViewHolder: this.onBindViewHolder.bind(this),
803
853
  onViewRecycled: this.onViewRecycled.bind(this)
804
854
  });
855
+ // const composedAdapter = new com.h6ah4i.android.widget.advrecyclerview.composedadapter.ComposedAdapter();
856
+ // composedAdapter.addAdapter(new CollectionViewAdapter(new WeakRef(this)));
805
857
  return adapter;
806
858
  }
807
859
  getItemCount() {
@@ -838,10 +890,19 @@ export class CollectionView extends CollectionViewBase {
838
890
  const selector = this._itemTemplateSelector;
839
891
  const dataItem = this.getItemAtIndex(position);
840
892
  if (dataItem) {
841
- selectorType = selector(dataItem, position, this.items);
893
+ selectorType = selector.call(this, dataItem, position, this.items);
842
894
  }
843
895
  }
844
896
  return this.templateKeyToNativeItem(selectorType);
897
+ // if (!this.templateTypeNumberString.has(selectorType)) {
898
+ // resultType = this._currentNativeItemType;
899
+ // this.templateTypeNumberString.set(selectorType, resultType);
900
+ // this.templateStringTypeNumber.set(resultType, selectorType);
901
+ // this._currentNativeItemType++;
902
+ // } else {
903
+ // resultType = this.templateTypeNumberString.get(selectorType);
904
+ // }
905
+ // return resultType;
845
906
  }
846
907
  templateKeyToNativeItem(key) {
847
908
  if (!this.templateTypeNumberString) {
@@ -854,6 +915,8 @@ export class CollectionView extends CollectionViewBase {
854
915
  this._currentNativeItemType++;
855
916
  });
856
917
  this._currentNativeItemType = Math.max(this._itemTemplatesInternal.size, 100);
918
+ // templates will be numbered 0,1,2,3... for named templates
919
+ // default/unnamed templates will be numbered 100, 101, 102, 103...
857
920
  }
858
921
  if (!this.templateTypeNumberString.has(key)) {
859
922
  this.templateTypeNumberString.set(key, this._currentNativeItemType);
@@ -891,6 +954,7 @@ export class CollectionView extends CollectionViewBase {
891
954
  onCreateViewHolder(parent, viewType) {
892
955
  let view = this.getViewForViewType(ListViewViewTypes.ItemView, this.getKeyByValue(viewType));
893
956
  const isNonSync = view === undefined;
957
+ // dont create unecessary StackLayout if template.createView returns. Will happend when not using Vue or angular
894
958
  if (isNonSync || view instanceof ProxyViewContainer) {
895
959
  const parentView = new ContentView();
896
960
  parentView.id = 'collectionViewHolder';
@@ -898,6 +962,7 @@ export class CollectionView extends CollectionViewBase {
898
962
  }
899
963
  view._setupAsRootView(this._context);
900
964
  view._isAddedToNativeVisualTree = true;
965
+ //@ts-ignore
901
966
  view.parent = this;
902
967
  view.callLoaded();
903
968
  if (!CollectionViewCellHolder) {
@@ -951,6 +1016,7 @@ export class CollectionView extends CollectionViewBase {
951
1016
  this.notify(args);
952
1017
  if (isNonSync && args.view !== view) {
953
1018
  view = args.view;
1019
+ // the view has been changed on the event handler
954
1020
  holder.view.content = args.view;
955
1021
  }
956
1022
  view.notify({ eventName: CollectionViewBase.bindedEvent });
@@ -972,6 +1038,13 @@ export class CollectionView extends CollectionViewBase {
972
1038
  if (height || !view.height) {
973
1039
  view.height = Utils.layout.toDeviceIndependentPixels(height);
974
1040
  }
1041
+ // if (this.hasListeners(CollectionViewBase.displayItemEvent) ) {
1042
+ // this.notify<CollectionViewItemDisplayEventData>({
1043
+ // eventName: CollectionViewBase.displayItemEvent,
1044
+ // index:position,
1045
+ // object: this,
1046
+ // });
1047
+ // }
975
1048
  if (Trace.isEnabled()) {
976
1049
  CLog(CLogTypes.log, 'onBindViewHolder done ', position);
977
1050
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.android.js","sourceRoot":"../src/","sources":["index.android.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.android.js","sourceRoot":"../src/","sources":["index.android.ts"],"names":[],"mappings":"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"}
package/index.ios.js CHANGED
@@ -64,7 +64,7 @@ export class CollectionView extends CollectionViewBase {
64
64
  view.registerClassForCellWithReuseIdentifier(CollectionViewCell.class(), t.key.toLowerCase());
65
65
  });
66
66
  view.autoresizesSubviews = false;
67
- view.autoresizingMask = 0;
67
+ view.autoresizingMask = 0 /* UIViewAutoresizing.None */;
68
68
  this.lastContentOffset = view.contentOffset;
69
69
  return view;
70
70
  }
@@ -106,15 +106,21 @@ export class CollectionView extends CollectionViewBase {
106
106
  this.clearRealizedCells();
107
107
  super.disposeNativeView();
108
108
  }
109
+ // _onSizeChanged() {
110
+ // super._onSizeChanged();
111
+ // this.onSizeChanged(this.getMeasuredWidth(), this.getMeasuredHeight());
112
+ // }
109
113
  get _childrenCount() {
110
114
  return this._map.size;
111
115
  }
112
116
  eachChild(callback) {
117
+ // used for css updates (like theme change)
113
118
  this._map.forEach((view) => {
114
119
  if (view.parent instanceof CollectionView) {
115
120
  callback(view);
116
121
  }
117
122
  else {
123
+ // in some cases (like item is unloaded from another place (like angular) view.parent becomes undefined)
118
124
  if (view.parent) {
119
125
  callback(view.parent);
120
126
  }
@@ -177,6 +183,9 @@ export class CollectionView extends CollectionViewBase {
177
183
  }
178
184
  }
179
185
  handleReorderEnd() {
186
+ // we call all events from here because the delegate
187
+ // does not handle the case start dragging => cancel or
188
+ // start dragging => end over the same item
180
189
  if (!this.reorderEndingRow) {
181
190
  this.reorderEndingRow = this.reorderStartingRow;
182
191
  }
@@ -191,14 +200,14 @@ export class CollectionView extends CollectionViewBase {
191
200
  return;
192
201
  }
193
202
  switch (gesture.state) {
194
- case 1:
203
+ case 1 /* UIGestureRecognizerState.Began */:
195
204
  const selectedIndexPath = collectionView.indexPathForItemAtPoint(gesture.locationInView(collectionView));
196
205
  collectionView.beginInteractiveMovementForItemAtIndexPath(selectedIndexPath);
197
206
  break;
198
- case 2:
207
+ case 2 /* UIGestureRecognizerState.Changed */:
199
208
  collectionView.updateInteractiveMovementTargetPosition(gesture.locationInView(collectionView));
200
209
  break;
201
- case 3:
210
+ case 3 /* UIGestureRecognizerState.Ended */:
202
211
  collectionView.endInteractiveMovement();
203
212
  this.handleReorderEnd();
204
213
  break;
@@ -227,10 +236,10 @@ export class CollectionView extends CollectionViewBase {
227
236
  const layout = this._layout;
228
237
  if (layout instanceof UICollectionViewFlowLayout) {
229
238
  if (value === 'horizontal') {
230
- layout.scrollDirection = 1;
239
+ layout.scrollDirection = 1 /* UICollectionViewScrollDirection.Horizontal */;
231
240
  }
232
241
  else {
233
- layout.scrollDirection = 0;
242
+ layout.scrollDirection = 0 /* UICollectionViewScrollDirection.Vertical */;
234
243
  }
235
244
  }
236
245
  this.updateScrollBarVisibility(this.scrollBarIndicatorVisible);
@@ -241,6 +250,7 @@ export class CollectionView extends CollectionViewBase {
241
250
  }
242
251
  [isBounceEnabledProperty.setNative](value) {
243
252
  this.nativeViewProtected.bounces = value;
253
+ // this.nativeViewProtected.alwaysBounceHorizontal = value;
244
254
  }
245
255
  [itemTemplatesProperty.getDefault]() {
246
256
  return null;
@@ -310,9 +320,12 @@ export class CollectionView extends CollectionViewBase {
310
320
  return;
311
321
  }
312
322
  if ((layoutView instanceof UICollectionViewFlowLayout && this._effectiveColWidth) || this._effectiveRowHeight) {
323
+ // @ts-ignore
313
324
  layoutView.estimatedItemSize = layoutView.itemSize = CGSizeMake(Utils.layout.toDeviceIndependentPixels(this._effectiveColWidth), Utils.layout.toDeviceIndependentPixels(this._effectiveRowHeight));
314
325
  }
315
326
  layoutView.invalidateLayout();
327
+ // there is no need to call refresh if it was triggered before with same size.
328
+ // this refresh is just to handle size change
316
329
  const layoutKey = this._innerWidth + '_' + this._innerHeight;
317
330
  if (this._lastLayoutKey !== layoutKey) {
318
331
  this.refresh();
@@ -329,6 +342,7 @@ export class CollectionView extends CollectionViewBase {
329
342
  if (Trace.isEnabled()) {
330
343
  CLog(CLogTypes.log, 'onItemsChanged', ChangeType.Update, event.action, event.index, event.addedCount, event.removed && event.removed.length);
331
344
  }
345
+ // we need to clear stored cell sizes and it wont be correct anymore
332
346
  this.clearCellSize();
333
347
  switch (event.action) {
334
348
  case ChangeType.Delete: {
@@ -460,19 +474,26 @@ export class CollectionView extends CollectionViewBase {
460
474
  if (Trace.isEnabled()) {
461
475
  CLog(CLogTypes.info, 'refresh');
462
476
  }
477
+ // we need to clear stored cell sizes and it wont be correct anymore
463
478
  this.clearCellSize();
479
+ // clear bindingContext when it is not observable because otherwise bindings to items won't reevaluate
464
480
  this._map.forEach((view, nativeView, map) => {
465
481
  if (!(view.bindingContext instanceof Observable)) {
466
482
  view.bindingContext = null;
467
483
  }
468
484
  });
485
+ // TODO: this is ugly look here: https://github.com/nativescript-vue/nativescript-vue/issues/525
486
+ // this.clearRealizedCells();
487
+ // dispatch_async(main_queue, () => {
469
488
  this.nativeViewProtected.reloadData();
489
+ // });
470
490
  const args = {
471
491
  eventName: CollectionViewBase.dataPopulatedEvent,
472
492
  object: this
473
493
  };
474
494
  this.notify(args);
475
495
  }
496
+ //@ts-ignore
476
497
  get scrollOffset() {
477
498
  const view = this.nativeViewProtected;
478
499
  return (this.isHorizontal() ? view?.contentOffset.x : view?.contentOffset.y) || 0;
@@ -484,9 +505,10 @@ export class CollectionView extends CollectionViewBase {
484
505
  return this.nativeViewProtected?.contentOffset.y || 0;
485
506
  }
486
507
  scrollToIndex(index, animated = true) {
487
- this.nativeViewProtected.scrollToItemAtIndexPathAtScrollPositionAnimated(NSIndexPath.indexPathForItemInSection(index, 0), this.orientation === 'vertical' ? 1 : 8, animated);
508
+ this.nativeViewProtected.scrollToItemAtIndexPathAtScrollPositionAnimated(NSIndexPath.indexPathForItemInSection(index, 0), this.orientation === 'vertical' ? 1 /* UICollectionViewScrollPosition.Top */ : 8 /* UICollectionViewScrollPosition.Left */, animated);
488
509
  }
489
510
  requestLayout() {
511
+ // When preparing cell don't call super - no need to invalidate our measure when cell desiredSize is changed.
490
512
  if (!this._preparingCell) {
491
513
  super.requestLayout();
492
514
  }
@@ -503,7 +525,7 @@ export class CollectionView extends CollectionViewBase {
503
525
  const selector = this._itemTemplateSelector;
504
526
  let type = this._defaultTemplate.key;
505
527
  if (selector) {
506
- type = selector(this.getItemAtIndex(indexPath.item), indexPath.item, this.items);
528
+ type = selector.call(this, this.getItemAtIndex(indexPath.item), indexPath.item, this.items);
507
529
  }
508
530
  return type.toLowerCase();
509
531
  }
@@ -546,6 +568,8 @@ export class CollectionView extends CollectionViewBase {
546
568
  const innerView = NSCellView.new();
547
569
  innerView.view = new WeakRef(view);
548
570
  if (!notForCellSizeComp || this.autoReloadItemOnLayout) {
571
+ // for a cell to update correctly on cell layout change we need
572
+ // to do it ourself instead of "propagating it"
549
573
  view['performLayout'] = () => {
550
574
  if (notForCellSizeComp) {
551
575
  this.measureCell(cell, view, indexPath);
@@ -572,6 +596,7 @@ export class CollectionView extends CollectionViewBase {
572
596
  }
573
597
  getCellSize(index) {
574
598
  let result = this._sizes[index];
599
+ // CLog(CLogTypes.log, 'getCellSize', index, result, this._effectiveColWidth, this._effectiveRowHeight, this.getMeasuredWidth(), this.getMeasuredHeight());
575
600
  if (!result) {
576
601
  let width = this._effectiveColWidth;
577
602
  let height = this._effectiveRowHeight;
@@ -596,6 +621,7 @@ export class CollectionView extends CollectionViewBase {
596
621
  result = [width, this.getMeasuredHeight()];
597
622
  }
598
623
  }
624
+ // return undefined;
599
625
  return result;
600
626
  }
601
627
  storeCellSize(index, value) {
@@ -665,9 +691,11 @@ export class CollectionView extends CollectionViewBase {
665
691
  }
666
692
  _removeContainer(cell) {
667
693
  const view = cell.view;
694
+ // This is to clear the StackLayout that is used to wrap ProxyViewContainer instances.
668
695
  if (!(view.parent instanceof CollectionView)) {
669
696
  this._removeView(view.parent);
670
697
  }
698
+ // No need to request layout when we are removing cells.
671
699
  const preparing = this._preparingCell;
672
700
  this._preparingCell = true;
673
701
  view.parent._removeView(view);
@@ -682,6 +710,7 @@ export class CollectionView extends CollectionViewBase {
682
710
  bottom: layout['sectionInset'].bottom,
683
711
  left: layout['sectionInset'].left
684
712
  };
713
+ // tslint:disable-next-line:prefer-object-spread
685
714
  const newValue = Object.assign(padding, newPadding);
686
715
  layout['sectionInset'] = newValue;
687
716
  }
@@ -723,6 +752,13 @@ export class CollectionView extends CollectionViewBase {
723
752
  });
724
753
  }
725
754
  }
755
+ // if (this.hasListeners(CollectionViewBase.displayItemEvent) ) {
756
+ // this.notify<CollectionViewItemDisplayEventData>({
757
+ // eventName: CollectionViewBase.displayItemEvent,
758
+ // index:indexPath.row,
759
+ // object: this,
760
+ // });
761
+ // }
726
762
  if (cell.preservesSuperviewLayoutMargins) {
727
763
  cell.preservesSuperviewLayoutMargins = false;
728
764
  }