/*private void measureScrapChild(RecyclerView.Recycler recycler, int position, int widthSpec, int heightSpec, int[] measuredDimension) { View view = recycler.GetViewForPosition(position); recycler.BindViewToPosition(view, position); if (view != null) { view.Measure(widthSpec, heightSpec); //MeasureChildWithMargins(view, widthSpec, heightSpec); measuredDimension[0] = view.MeasuredWidth; measuredDimension[1] = view.MeasuredHeight; recycler.RecycleView(view); } }*/ private void measureScrapChild(RecyclerView.Recycler recycler, int position, int widthSpec, int heightSpec, int[] measuredDimension) { View view = recycler.GetViewForPosition(position); recycler.BindViewToPosition(view, position); base.MeasureChildWithMargins (view, 0,0); if (view != null) { RecyclerView.LayoutParams p = view.LayoutParameters.JavaCast<RecyclerView.LayoutParams>(); int childWidthSpec = ViewGroup.GetChildMeasureSpec (widthSpec, PaddingLeft + PaddingRight, p.Width); int childHeightSpec = ViewGroup.GetChildMeasureSpec (heightSpec, PaddingTop + PaddingBottom, p.Height); view.Measure (childWidthSpec, childHeightSpec); measuredDimension [0] = view.MeasuredWidth + p.LeftMargin + p.RightMargin; measuredDimension [1] = view.MeasuredHeight + p.BottomMargin + p.TopMargin; recycler.RecycleView (view); } }