protected override void OnLayout(bool changed, int l, int t, int r, int b) { int width = r - l; int height = b - t; var context = Context; _bottomNavigationView.Measure(MeasureSpec.MakeMeasureSpec(width, MeasureSpecMode.Exactly), MeasureSpec.MakeMeasureSpec(height, MeasureSpecMode.AtMost)); int tabsHeight = Math.Min(height, Math.Max(_bottomNavigationView.MeasuredHeight, _bottomNavigationView.MinimumHeight)); if (width > 0 && height > 0) { _pageController.ContainerArea = new Rectangle(0, 0, context.FromPixels(width), context.FromPixels(_frameLayout.Height)); ObservableCollection <Element> internalChildren = _pageController.InternalChildren; for (var i = 0; i < internalChildren.Count; i++) { var child = internalChildren[i] as VisualElement; if (child == null) { continue; } NavigationPageRenderer navigationRenderer; using (IVisualElementRenderer renderer = Platform.Android.Platform.GetRenderer(child)) { navigationRenderer = renderer as NavigationPageRenderer; } if (navigationRenderer != null) { // navigationRenderer.ContainerPadding = tabsHeight; } } _bottomNavigationView.Measure(MeasureSpec.MakeMeasureSpec(width, MeasureSpecMode.Exactly), MeasureSpec.MakeMeasureSpec(tabsHeight, MeasureSpecMode.Exactly)); _bottomNavigationView.Layout(0, 0, width, tabsHeight); } base.OnLayout(changed, l, t, r, b); }