public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType) { var template = _templateMap[viewType]; var content = (View)template.CreateContent(); content.Parent = _shellContext.Shell; var linearLayout = new LinearLayoutWithFocus(parent.Context) { Orientation = Orientation.Vertical, LayoutParameters = new RecyclerView.LayoutParams(LP.MatchParent, LP.WrapContent), Content = content }; var bar = new AView(parent.Context); bar.SetBackgroundColor(Color.Black.MultiplyAlpha(0.14).ToAndroid()); bar.LayoutParameters = new LP(LP.MatchParent, (int)parent.Context.ToPixels(1)); linearLayout.AddView(bar); var container = new ContainerView(parent.Context, content); container.MatchWidth = true; container.LayoutParameters = new LP(LP.MatchParent, LP.WrapContent); linearLayout.AddView(container); _elementViewHolder = new ElementViewHolder(content, linearLayout, bar, _selectedCallback); return(_elementViewHolder); }
protected override void Dispose(bool disposing) { if (_disposed) { return; } _disposed = true; if (disposing) { ((IShellController)Shell).StructureChanged -= OnShellStructureChanged; _elementViewHolder?.Dispose(); _listItems = null; _selectedCallback = null; _elementViewHolder = null; } base.Dispose(disposing); }