public sealed override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
        {
            if (viewType != ProgressBarViewType)
            {
                return(base.OnCreateViewHolder(parent, viewType));
            }

            var view = Context.LayoutInflater.Inflate(Resource.Layout.View_IndeterminateProgressIndicator, parent, false);

            view.LayoutParameters.Width  = LoadingCardWidth;
            view.LayoutParameters.Height = LoadingCardHeight;
            var holder = new ProgressBarViewHolder(view, LoadingItemBackgroundColor);

            return(holder);
        }
        public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
        {
            var cardViewType = (RecyclerCardType)viewType;

            if (cardViewType == RecyclerCardType.ProgressBar)
            {
                var view = Context.LayoutInflater.Inflate(Resource.Layout.View_IndeterminateProgressIndicator, parent,
                                                          false);
                view.LayoutParameters.Width  = LoadingCardWidth;
                view.LayoutParameters.Height = LoadingCardHeight;
                var holder = new ProgressBarViewHolder(view, LoadingItemBackgroundColor);

                return(holder);
            }

            if (cardViewType == RecyclerCardType.Custom)
            {
                return(CreateCustomViewHolder(parent, viewType));
            }

            var layoutResource = Resource.Layout.View_CardItem_Horizontal;

            switch (cardViewType)
            {
            case RecyclerCardType.FlatHorizontal:
                layoutResource = Resource.Layout.View_CardItem_FlatHorizontal;
                break;

            case RecyclerCardType.Vertical:
                layoutResource = Resource.Layout.View_CardItem_Vertical;
                break;
            }

            var cardHolder = new CardItem(Context.LayoutInflater.Inflate(layoutResource, parent, false));

            SetupRowClickActions(cardHolder);

            SetupButtonClickActions(cardHolder);

            return(SetupCardItemViewHolder(cardHolder));
        }