protected override void Dispose(bool disposing) { if (_disposed) { return; } if (disposing) { RecyclerView?.StopScroll(); RecyclerView?.SetAdapter(null); RecyclerView?.RemoveItemDecoration(_itemDecoration); _gridLayoutManager?.SetSpanSizeLookup(null); _spanSizeLookup?.Dispose(); _spanSizeLookup = null; _itemDecoration?.Dispose(); _itemDecoration = null; } _disposed = true; base.Dispose(disposing); }
protected override void OnElementChanged(ElementChangedEventArgs <CollectionView> e) { base.OnElementChanged(e); if (e.NewElement != null) { if (RecyclerView == null) { RecyclerView = new RecyclerView(Context); _refresh = new SwipeRefreshLayout(Context); _refresh.SetOnRefreshListener(this); _refresh.AddView(RecyclerView, LayoutParams.MatchParent, LayoutParams.MatchParent); SetNativeControl(_refresh); } LayoutManager = new GridLayoutManager(Context, 2); _spanSizeLookup = new CollectionViewSpanSizeLookup(this); _gridLayoutManager.SetSpanSizeLookup(_spanSizeLookup); RecyclerView.Focusable = false; RecyclerView.DescendantFocusability = Android.Views.DescendantFocusability.AfterDescendants; RecyclerView.OnFocusChangeListener = this; RecyclerView.SetClipToPadding(false); _itemDecoration = new GridCollectionItemDecoration(this); RecyclerView.AddItemDecoration(_itemDecoration); Adapter = new CollectionViewAdapter(Context, _gridCollectionView, RecyclerView, this); RecyclerView.SetAdapter(Adapter); RecyclerView.SetLayoutManager(_gridLayoutManager); Adapter.IsAttachedToWindow = IsAttached; UpdateGroupHeaderHeight(); UpdatePullToRefreshEnabled(); UpdatePullToRefreshColor(); } }