public virtual AbstractViewHolder OnCreateAbstractViewHolder(ViewGroup parent, int viewType)
        {
            // Create a RecyclerView as a Row of the CellRecyclerView
            CellRecyclerView recyclerView = new CellRecyclerView(mContext);

            // Use the same view pool
            recyclerView.SetRecycledViewPool(mRecycledViewPool);
            if (mTableView.IsShowHorizontalSeparators())
            {
                // Add divider
                recyclerView.AddItemDecoration(mTableView.GetHorizontalItemDecoration());
            }

            // To get better performance for fixed size TableView
            recyclerView.HasFixedSize = mTableView.HasFixedWidth();
            // set touch mHorizontalListener to scroll synchronously
            recyclerView.AddOnItemTouchListener(mTableView.GetHorizontalRecyclerViewListener());
            // Add Item click listener for cell views
            recyclerView.AddOnItemTouchListener(new CellRecyclerViewItemClickListener(recyclerView, mTableView));
            // Set the Column layout manager that helps the fit width of the cell and column header
            // and it also helps to locate the scroll position of the horizontal recyclerView
            // which is row recyclerView
            recyclerView.SetLayoutManager(new ColumnLayoutManager(mContext, mTableView));
            // Create CellRow adapter
            recyclerView.SetAdapter(new CellRowRecyclerViewAdapter(mContext, mTableView));
            // This is for testing purpose to find out which recyclerView is displayed.
            recyclerView.Id = mRecyclerViewId;
            mRecyclerViewId++;
            return(new CellRecyclerViewAdapter.CellRowViewHolder(recyclerView));
        }
 internal CellRowViewHolder(Android.Views.View itemView) : base(itemView)
 {
     recyclerView = (CellRecyclerView)itemView;
 }