示例#1
0
        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);
        }
示例#2
0
        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);
        }